Saheeda Geschrieben 16. August 2014 Geschrieben 16. August 2014 (bearbeitet) Delegates & Threads Hallo, was ich über Delegates weiß: - sie verweisen (referenzieren) auf eine Methode - sie können nicht static sein / müssen instanziert werden - die Signaturen von Delegate und aufgerufener Methode müssen übereinstimmen - es gibt anonyme Methoden, die "on time" erstellt werden und den Zugriff auf Variablen außerhalb der Methode erlauben - ich kann mehrere Delegates verknüpfen (Multicasting; habe ich bisher nur bei Timern genutzt) Zusammengefasst würde ich also sagen, Delegates sind ne Art Kurzschreibweise. Methoden aufrufen bzw. zusammenführen geht ja auch ohne Delegates, es wird halt nur länger und umständlicher. Den größten Unterschied sehe ich momentan nur in den anonymen Methoden, die den Zugriffsbereich (Scope?) beträchtlich erweitern. Stimmt das so? ______________________ Threads: Wie Sie an den Beispielen [...] noch sehen werden, können Sie die meisten Ausnahmen abfangen oder unterdrücken. Jedoch ist ThreadAbortException eine Ausnahme, die im .NET-Framework nicht ohne guten Grund ignoriert werden sollte. Diese Ausnahme muss die Kette der Ausnahmen hochwandern können, damit abgebrochene Threads wissen, dass sie die Arbeit einstellen müssen. "Kevin Hoffman: "Visual C# 2005", S.156" Warum? Angenommen, ich habe einen Thread namens doSomething, den ich irgendwo im Laufe meines Programms mit doSomething.Abort() abbreche. Damit "weiß" der betreffende Thread doch, dass er aufhören soll mit arbeiten. Alle anderen laufen doch, sofern ich kein Join einsetze, sowieso unabhängig voneinander. Wo liegt mein Denkfehler? Bearbeitet 16. August 2014 von Saheeda Zitieren
songokude Geschrieben 16. August 2014 Geschrieben 16. August 2014 (bearbeitet) Delegates & Threads Warum? Angenommen, ich habe einen Thread namens doSomething, den ich irgendwo im Laufe meines Programms mit doSomething.Abort() abbreche. Damit "weiß" der betreffende Thread doch, dass er aufhören soll mit arbeiten. Alle anderen laufen doch, sofern ich kein Join einsetze, sowieso unabhängig voneinander. Wo liegt mein Denkfehler? Die Methode Abort bringt in manchen Situationen leider die komplette Anwendung zum Absturz, z.b. gibt's Probleme wenn innerhalb eines usings der Thread abgebrochen wird. Daher sollte man garnicht erst auf die Abortfunktion vertrauen, sondern einen thread über if(bool_cancelProcess) return; abbrechen Bearbeitet 16. August 2014 von songokude Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.