Zum Inhalt springen

Delegates & Threads


Empfohlene Beiträge

Geschrieben (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 von Saheeda
Geschrieben (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 von songokude

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...