读书人

sleep延迟有关问题

发布时间: 2012-10-23 12:12:22 作者: rapoo

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一段时间,

读书人网 >C#

热点推荐