/ / Windowsサービス - 起動時に結合されたスレッドの目的 - c#、windows、service

Windowsサービス - 起動時に結合されたスレッドの目的 - c#、windows、service

私はWindowsサービスを継承しています。スタートアップコードに新しいスレッドを作成する目的を理解していないStartStart()はOnStartサービスメソッドによって呼び出されます。この新しいスレッドに参加することができますので、復帰する前に完了するまで待ちます。

私の理解は、長い実行中のスタートアップコードは新しいスレッドに移動する必要がありますが、その1つ すべきではない Windowsサービスマネージャーにタイムリーに対応する必要があるため、完了するまで待ってください。

誰かが教えてくれますか?このサービススタートアップコードのスレッドの目的は何ですか?

public void Start()
{
if (MyServerState.Stopped == this._srvrState)
{
this._srvrState = MyServerState.Starting;

lock (this._startStopLock)
{
Thread startup = new Thread(Startup);
startup.Priority = ThreadPriority.AboveNormal;
startup.Name = "Publisher Startup";
startup.Start();
startup.IsBackground = true;
startup.Join(SYSRESPONSE_INTERVAL);
}
}
}

回答:

回答№1は0

起動。できるだけ早くサービスの開始を完了しなければならないと正しく言ったので、参加はそこにはいけません。上記のコードはおそらくSYSRESPONSE_INTERVALが30秒(サービスコンソールが起動スレッドに与える完了時間)未満である可能性があるため、おそらく動作している可能性があります。結合を削除してもコードは正常に実行されます。