Tôi có một dịch vụ cửa sổ và tôi đã viết mã để chạy các nhiệm vụ trong sự kiện OnStart():Cách chạy tác vụ khi dịch vụ windows khởi động?
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);
}
}
Các DoTask là một vòng lặp không bao giờ kết thúc. Nó sẽ dừng lại chỉ khi dịch vụ được dừng lại.
Nhưng khi tôi cố gắng để bắt đầu dịch vụ, nó chờ đợi một thời gian dài sau đó mang lại cho tôi những lỗi dưới đây:
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.
Làm thế nào để giải quyết nó?
Việc chờ đợi không chờ đợi như vậy. Ý tôi là nó sẽ chỉ chụp bất kỳ ngoại lệ nào từ nhiệm vụ đó. –
Việc chờ * là * "chờ đợi như vậy". Mã của bạn đang ngồi ở đó, không làm gì cả, chờ đợi nhiệm vụ đó hoàn thành. Và nó đang chờ đợi trên cùng một luồng được gọi là 'OnStart'. –
không. nó được sử dụng để nắm bắt ngoại lệ. –