溫馨提示×

C# TaskScheduler如何處理異常

c#
小樊
103
2024-07-20 22:42:06
欄目: 編程語言

在C#中,TaskScheduler本身并不處理異常,而是將異常傳遞給Task對象的異常處理程序。當在任務中發(fā)生異常時,該異常將被傳遞給Task對象的異常處理程序,可以通過Task對象的ContinueWith或Wait方法來處理異常。

例如,可以通過ContinueWith方法來指定一個委托來處理任務中發(fā)生的異常,如下所示:

Task task = Task.Factory.StartNew(() =>
{
    // 任務邏輯
    throw new Exception("An error occurred.");
});

task.ContinueWith(t =>
{
    if (t.Exception != null)
    {
        Console.WriteLine("An error occurred: " + t.Exception.InnerException.Message);
    }
}, TaskContinuationOptions.OnlyOnFaulted);

在上面的示例中,如果任務中發(fā)生異常,異常將被傳遞給ContinueWith方法指定的委托,并在控制臺輸出異常信息。可以根據(jù)實際需求來處理異常,例如記錄日志、重新拋出異常等操作。

0