首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

sleep延迟有关问题

2012-10-23 
sleep延迟问题[codeC#][/code]while (bThread){Uii_str if (Public.RmuGetReceived(phCom, blen, bu

sleep延迟问题
[code=C#][/code]
 while (bThread)
  {
  Uii_str = "";  
  if (Public.RmuGetReceived(phCom, blen, buii))
  {
  for (i = 0; i < blen[0]; i++)
  {
  Uii_str += (buii[i] >> 4).ToString("X");
  Uii_str += (buii[i] & 0x0F).ToString("X");
  }

  saveMark(Uii_str);
   
  //bsTag = Uii_str;

  //在主窗口中显示数据  
  // add by Hoctor Meng
  Fn.PlaySound.Play(okSoundPath);

  ActingThread AcT = new ActingThread(ShowLv);

  this.BeginInvoke(AcT, new object[] { 0, Uii_str, "", "" });
  //Thread.Sleep(1000); //此处加入sleep不好使,明显的RmuGetReceived()一直在进行读卡操作,
  //bThread = false;//如果此处加这个动作也不好使,那样RmuGetReceived()方法就会不读卡了,求达人给支招。
  MessageBox.Show("记录保存成功,Records save ok");
  }

[解决办法]

C# code
        private void Delay(int Millisecond) //延迟系统时间,但系统又能同时能执行其它任务;        {            DateTime current = DateTime.Now;            while (current.AddMilliseconds(Millisecond) > DateTime.Now)            {                Thread.Sleep(200);                Application.DoEvents();//转让控制权                 }            return;        }
[解决办法]


你这个问题发了几次了,貌似是这样的
已经说了很多遍了。你在主线程里面所sleep肯定会引起这个问题
你另外的起一个线程,然后控制这个线程的关与停
[解决办法]
你到底是想读卡还是不读卡?或者是先暂停一段时间不读卡,然后继续?这样sleep应该加在RmuGetReceived()之后或者之前,你再加入另一个全局变量bool bToSleep,在RmuGetReceived后判断bToShepp为真则Sleep一段时间,

热点排行