簡體   English   中英

Windows服務和線程工作代碼的靜態與非靜態方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM