7.10 Exceptions verarbeiten, die von einem asynchronen Delegate ausgelöst werden

Problem

Ein Delegate wird asynchron verwendet, und Sie möchten benachrichtigt werden, wenn das Delegate Exceptions auslöst.

Lösung

Hüllen Sie die EndInvoke-Methode des Delegates in einen try/catch-Block ein:

using System; using System.Threading; public class AsyncAction { public void PollAsyncDelegate( ) { // Ein asynchrones Delegate erzeugen, das Method1 aufruft, und seine // BeginInvoke-Methode aufrufen. AsyncInvoke MI = new AsyncInvoke(TestAsyncInvoke.Method1); IAsyncResult AR = MI.BeginInvoke(null, null); // Prüfen, ob das asynchrone Delegate fertig ist. while (!AR.IsCompleted) { System.Threading.Thread.Sleep(100); Console.Write('.'); } Console.WriteLine("Delegate ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.