一開始,筆者使用 Thread。此方法雖可將監聽的部分另起,但若此執行緒已運行完畢,並無法通知主程式「我」已經結束。經由 google,發現可利用 BackgroundWorker 類別解決上述問題。下面為實作面的紀錄:
首先,必須載入 (import)
System.ComponentModel;
接著,於主程式中宣告物件 (object)
BackgroundWorker bw = new BackgroundWorker();
對物件 bw 進行設定
bw.DoWork += new DoWorkEventHandler(DoWork);
bw.RunWorkerCompletedEventHandler += new RunWorkerCompletedEventHandler(RunWorkerCompleted);
實作 Event Handle 函式
DoWork(object sender, DoWorkEventArgs e)
{
// 於背景啟動此執行緒時的工作
}
RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// 當此執行緒運行完畢時的工作
}
當然,解決方案不僅僅如此一種。只不過,這是我實際成功的方式,藉由部落格與各位分享!如有更佳的解決方案,歡迎提出討論。
參考資料:MSDN
沒有留言:
張貼留言