那是好,如果讓我們說我有多個BackgroundWorkers可以使用相同的函數/結束變量嗎?
BackgroundWoker1
BackgroundWoker2
他們兩人都具有:
AddHandler BackgroundWoker1.DoWork, AddressOf requestDataTravelPackagesName
AddHandler BackgroundWoker1.ProgressChanged, AddressOf showLoadingAnim
,並在其他線路(具有不同的時間使用)
AddHandler BackgroundWoker2.DoWork, AddressOf requestDataTravelPackagesName
AddHandler BackgroundWoker2.ProgressChanged, AddressOf showLoadingAnim
這是允許?因爲我嘗試過類似的事情,而且看起來我的表格出現故障。 但它不給我任何錯誤/消息。框架(GUI)剛剛消失。
我在想也許這是因爲我有多個後臺工作人員。可能他們正在訪問相同的變量(在完成的功能)或類似的功能/等等。
其實我會建議避免BackgroundWorkers,因爲有更好的選擇,如任務,線程,ThreadPools等 –
@Trade,我不能不同意更多。根本沒有理由避免BackgroundWorkers。我可以看到你可能會建議使用Task來代替,但是建議在適當使用BackgroundWorker的情況下使用Thread或ThreadPool類,即在窗體或窗口中執行後臺任務,這只是一個不好的建議。 – jmcilhinney
嗯,img BackgroundWorker並不是一個很好的解決方案。我沒有取得好的經驗。另外我也會錯過那裏的異常處理,因爲它會吞噬異常並進入RunWorkerCompleted事件等。這有點令人困惑。優點是你可以直接向UI報告進度,但總的來說,我更喜歡任務,它只是更現代化,並帶來很多不錯的功能。 –