[英]Windows service and static vs. non-static method for thread work code
我有以下Windows服務代碼,它將啟動一個新線程來執行長時間運行的任務。 當我停止Windows服務時,任務停止。
public partial class WorkerService : ServiceBase
{
protected override void OnStart(string[] args)
{
Thread thread;
thread = new Thread(DoWork);
thread.IsBackground = true;
thread.Start();
}
//OnStop code here
private static void DoWork()
{
//Long-running task code here
}
}
DoWork方法是否是靜態的是否重要? 我在網上找到的大多數示例代碼都是靜態的。 但是,如果沒有靜態代碼,代碼似乎可以正常工作。
private void DoWork()
{
//Long-running task code here
}
在不為我的DoWork方法使用靜態方法時,我應該注意什么?
這是一個類似的關於靜態方法線程安全的SO問題的鏈接。 在使用線程和線程池時,我總是實例化類。 一種構造函數,一種用途,一種目的。 線程是一種特殊目的的機制,我認為沒有理由將DoWork()
為靜態方法來共享或靜態使用線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.