【发布时间】:2014-02-12 14:01:39
【问题描述】:
好的,我一直在阅读 Thread.Sleep、Task.Delay、AutoResetEvent ...等方面的内容
我看到很多争论,因为这取决于正在执行的任务。
我目前在所有事情中都使用 Thread.Sleep,并认为我需要开始避免它并使用更好的做法。
这是一个包含 BackgroundWorker 的客户端应用程序。 Worker 每 30 分钟运行一次,以检查来自 Web 服务的更新数据。
然后它会更新位于 MainWindow 中的 3 个 int 变量。这些对 UI 没有任何作用。它们仅用于检查正在运行的其他工作人员。
一种延迟方式比另一种更好吗?
如果用户退出应用程序并且我正在调用 Application.Current.Shutdown(),它会继续运行直到 Thread.Sleep 完成,还是即使线程处于睡眠状态它也会退出?
【问题讨论】:
-
为什么不使用定时器而不是睡眠/后台工作人员?
-
Dispatcher.BeginInvoke(DispatcherPriority.Background,...);
标签: c# wpf multithreading