如何在c#中指定時間後取消後臺工作人員或取消未響應後臺工作人員。如何在c#中指定時間後取消後臺工作人員
4
A
回答
3
看看這個教程:http://www.albahari.com/threading/part3.aspx
爲了使System.ComponentModel.BackgroundWorker線程支持取消,需要啓動線程之前設置WorkerSupportsCancellation屬性爲True。
然後,您可以調用BackgroundWorker的.CancelAsync方法來取消該線程。
0
BackgroundWorker不支持這兩種情況。 以下是支持這些情況的一些代碼的開始。
class MyBackgroundWorker :BackgroundWorker {
public MyBackgroundWorker() {
WorkerReportsProgress = true;
WorkerSupportsCancellation = true;
}
protected override void OnDoWork(DoWorkEventArgs e) {
var thread = Thread.CurrentThread;
using(var cancelTimeout = new System.Threading.Timer(o => CancelAsync(), null, TimeSpan.FromMinutes(1), TimeSpan.Zero))
using(var abortTimeout = new System.Threading.Timer(o => thread.Abort(), null, TimeSpan.FromMinutes(2), TimeSpan.Zero)) {
for(int i = 0; i <= 100; i += 20) {
ReportProgress(i);
if(CancellationPending) {
e.Cancel = true;
return;
}
Thread.Sleep(1000); //do work
}
e.Result = "My Result"; //report result
base.OnDoWork(e);
}
}
}
+0
'Task.Delay'是'Thread.Sleep'的2017版本。 – mayu 2017-07-28 06:27:55
相關問題
- 1. 後臺工作人員取消
- 2. 取消後臺工作人員
- 3. C# - 後臺工作人員?
- 4. C#,後臺工作人員
- 5. C#後臺工作人員
- 6. C#取消後臺工作
- 7. 後臺工作人員
- 8. 在後臺運行Gearman工作人員
- 9. asp.net中的後臺工作人員
- 10. WPF取消後臺工作超時
- 11. 取消從網絡流中不斷讀取的後臺工作人員
- 12. 後臺工作人員worker_spi示例PostgreSQL
- 13. 從後臺工作人員更新UI
- 14. RabbitMQ的Python後臺工作人員
- 15. 後臺工作人員同步
- 16. 後臺工作人員執行
- 17. VB.NET 2008後臺工作人員
- 18. 重新啓動後臺工作人員
- 19. 後臺工作人員當前狀態
- 20. PHP AWS Elastic Beanstalk後臺工作人員
- 21. 在後臺工作人員之間傳遞Excel變量
- 22. Xamarin Android在一定時間後取消後臺通知
- 23. 在Windows Phone的後臺工作人員使用計時器
- 24. 取消Web工作人員
- 25. c#winform後臺工作人員和進度條
- 26. 後臺工作人員持續運行問題c#
- 27. c#opennetCF後臺工作人員 - e.result給出一個ObjectDisposedException
- 28. C#後臺工作人員用戶界面更新
- 29. 如何將參數傳遞給後臺工作人員?
- 30. 如何爲後臺工作人員編寫集成測試
我已閱讀上面的文章,但我需要1分鐘後 – 2009-08-27 14:40:19
終止我的背景工人約在調用線程創建一個System.Threading.Timer對象並設定它1分鐘什麼。當timer事件觸發時,調用BackgroundWorker線程的.CancelAsync方法。 – TLiebe 2009-08-27 14:42:16