gpt4 book ai didi

c# - Thread.Sleep() sleep 时间更长

转载 作者:行者123 更新时间:2023-11-30 19:46:39 42 4
gpt4 key购买 nike

我有一个 Winform,需要等待大约 3 - 4 小时。我无法关闭并以某种方式重新打开应用程序,因为它在等待时在后台做的事情很少。

为了实现等待 - 不给 UI 线程造成麻烦和其他原因 - 我有一个 BackgroundWorker,我向其发送等待多少毫秒并调用 Thread.Sleep(waitTime);在它的 doWork 事件中。在 backGroundWorker_RunWorkerCompleted 事件中,我执行程序在等待后应该执行的操作。

这在开发机器上运行良好。即等待在必须结束时结束。但是在测试机上,它一直在等待更长的时间。它发生了两次,第一次比指定时间多等待了 1 小时,第二次等待了大约 2 小时 40 分钟。

发生这种情况是否有任何明显的原因,或者我错过了什么?

开发机是Win XP,测试机是Win 7。

最佳答案

我建议改为使用 ManualResetEvent:

http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx

ManualResetEvent mre = new ManualResetEvent(false);
mre.WaitOne(waitTime);

...
//your background worker process
mre.Set();

作为奖励,您将能够更快地打断这种 sleep 。

关于c# - Thread.Sleep() sleep 时间更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240876/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com