私は、Windowsサービスを持っていると私はのOnStart()イベント内のタスクを実行するためのコードを書いている:Windowsサービスの開始時にタスクを実行するには?
protected override void OnStart(string[] args)
{
this.DoTask();
}
private void DoTask()
{
Task task1 = Task.Factory.StartNew(() => this.OriginalFileProcessor.StartPolling());
try
{
Task.Wait(task1);
}
catch (Exception ex)
{
this.Log.Error("Failed running the task", ex);
}
}
DoTaskは決して終わることのないループです。サービスが停止した場合にのみ停止します。
しかし、私はサービスを開始しようとすると、それは長い時間が、その後私に以下のエラーが発生します待機:
Windows could not start the ... service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
それを解決する方法は?
待機は待機中ではありません。つまり、そのタスクからの例外をキャプチャするだけです。 –
待機中*は「待っています」です。あなたのコードはそこに座って何もせず、そのタスクが完了するのを待っています。そして、それは 'OnStart'と呼ばれる同じスレッドで待っています。 –
番号。例外をキャプチャするために使用されます。 –