Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menangkap Pengecualian daripada Benang Berasingan dalam .NET?
Tangkap Pengecualian yang Dilemparkan dalam Benang Asing
Dalam aplikasi berbilang benang, adalah penting untuk mengendalikan pengecualian yang berlaku dalam urutan berasingan. Panduan ini akan menunjukkan dua pendekatan untuk mencapainya.
Pengendalian Pengecualian Berasaskan Tugas dalam .NET 4 dan Ke Atas
Pertimbangkan untuk menggunakan Task
Task<int> task = new Task<int>(Test); task.ContinueWith(ExceptionHandler, TaskContinuationOptions.OnlyOnFaulted); task.Start(); ... static void ExceptionHandler(Task<int> task) { Console.WriteLine(task.Exception.Message); }
Task<int> task = new Task<int>(Test); task.Start(); try { task.Wait(); } catch (AggregateException ex) { Console.WriteLine(ex); }
Pengendalian Pengecualian dalam .NET 3.5
Untuk .NET 3.5, pertimbangkan pendekatan berikut:
Exception exception = null; Thread thread = new Thread(() => Test(0, 0)); thread.Start(); thread.Join(); if (exception != null) Console.WriteLine(exception);
Exception exception = null; Thread thread = new Thread(() => { try { Test(0, 0); } catch (Exception ex) { lock (exceptionLock) { exception = ex; } } }); thread.Start(); thread.Join(); if (exception != null) Console.WriteLine(exception);
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Pengecualian daripada Benang Berasingan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!