Zum Inhalt springen

Delegates & Threads


Saheeda

Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...