【问题标题】:C# BackGroundWorker sleep for x amount of secondsC# BackGroundWorker 睡眠 x 秒
【发布时间】:2015-04-27 22:20:29
【问题描述】:

我有一个将任务放到 bgw 的程序,在该任务中,我想在检查电子邮件之前等待几秒钟,如果未找到,请再等待几秒钟,然后再次检查。

如果我不使用 backgroundworker 来执行此操作,它只会是 System.Threading.Thread.Sleep(x),但是您如何在 backgroundworker 的 do_work 函数中完成此操作?

【问题讨论】:

  • 为什么不直接通过计时器启动任务?

标签: c# backgroundworker


【解决方案1】:

使用System.Threading.Thread.Sleep(x)。为什么不将它用于 BackgroundWorker?

编辑:感谢 cyrianox 回答我上面的问题。答案可以在以下问题的已接受答案中找到:

Send a backgroundworker to sleep while checking for cancellation

【讨论】:

  • 睡眠当前胎面...Task.Run(() => System.Threading.Thread.Sleep(10))(就像使用睡眠一样)
  • @PaulKohler 在我看来,OP 想要休眠当前线程。但为什么要使用 Task.Run? BackgroundWorker 不使用基于任务的异步。
  • 这只是在任务中使用睡眠的一个例子,我的印象是他们认为不应该这样做
  • 坏主意。查看经过验证的答案:stackoverflow.com/questions/10287650/…
  • @cyrianox 感谢您回答我的问题“为什么不将它用于 BackgroundWorker”
【解决方案2】:

Thread.Sleep 的另一个选项是 Task.Delay,用于完成相同任务的方式。

Task.Delay

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2013-10-26
    • 2010-11-12
    • 2010-11-13
    相关资源
    最近更新 更多