Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

von Workerthread Methode des Mainthread aufrufen

  Alt 23. Jun 2010, 14:59
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.
  Mit Zitat antworten Zitat