我正在使用BackgroundWorker
通過在循環內調用WebClient.DownloadString
來下載一些網站。我希望用戶在下載內容時取消選擇,所以無論何時我發現CancellationPending
在循環中間打開,我都會調用CancelAsync
。如何暫停BackgroundWorker?或類似的東西
但現在我注意到函數DownloadString
有時會凍結,所以我決定使用DownloadStringAsync
來代替(所有這些都在使用BackgroundWorker
創建的其他線程中)。由於我不想通過在調用DownloadStringAsync
之後退出循環和函數來重寫我的整個代碼,所以在調用它之後我做了一個while循環,它什麼都不做,只是檢查一個變量bool Stop
, DownloadStringCompleted
事件處理程序被調用或當用戶請求取消操作時。
現在,奇怪的是,它在調試版本上正常工作;但是在發行版中,程序在while循環中凍結,就像它是主線程一樣。
WaitHandle的作品完美。謝謝! – Juan 2010-06-12 17:38:58
在後臺工作暫停/恢復循環http://stackoverflow.com/questions/8359058/pause-resume-loop-in-background-worker – 2012-12-31 01:40:12