Ich habe eine Methode welche ein paar Datenbankabfragen erledigt. Diese Methode soll in einem extra Thread laufen, weil es auch einmal länger dauern kann.
Diese Aktion kann sowohl händig per Menuclick ausgelöst werden als auch von einem Timer (mit sehr großem Intervall).
Wenn der Thread fertig ist, müssen ein paar Aktionen im Mainthread erledigt werden. Die sind je nach Datenbankabfrageergebnis u.a eine Meldung zeigen oder das
TNA-Icon ändern (es ist eine
TNA-Anwendung).
Jetzt ist die Frage, wie macht man das? In
Win32-Delphi gibt es ja so ein schönes Ereignis namens onTerminate, dass auch gleich im Mainthread läuft. In DotNet habe ich so etwas nicht gefunden.
Neben ThreadPool, der direkten Threadklasse habe ich auch schon versucht mittels Delegates.BeginInvoke zu arbeiten.
Bei letzterem wird nicht nur der Thread gestartet (wie bei allen anderen Varianten auch), sondern ich kann auch eine "EndMethode" angeben. Allerdings läuft die auch asynchron zum Mainthread. Das schönste wäre, wenn ich einfach aus dem WorkerThread eine Methode im Context des Mainthreades aufrufen kann.
Edit: Wo kann ich denn den Titel hier im Forum korrigieren?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.