ausgabe an grafische Oberfläche

lehme

Grünschnabel
Hallo

Ich habe mehrere Threads. Nun möchte ich von allnen auf die grafische Oberfläche schreiben. Beim Borland gibt es so eine Funktion synchronize mit der man das schaft. Wie geht das beim Visual Studio?

Vielen dank schon mal
 
Zuletzt bearbeitet:
Ich denke, was dem am nächsten kommt, sind CRITICAL_SECTIONs.
Du kannst mit EnterCriticalSection rein, mit LeaveCriticalSection raus.
 
Entschuldige, wenn ich Dir da widerspreche Endurion, aber Critical Sections sind afaik eher zur Absicherung von gemeinsam genutztem Code gedacht. Wenn es tatsächlich um Synchronisierung geht, würde ich eher eine Semaphore oder einen Mutex verwenden.
Sollte es in diesem Fall nicht ausreichen, wenn die Threads Nachrichten an den Oberflächen-Thread schicken?
 
also schützen sie nur diesen code, damit nicht 2 threads am gleichen ort im code laufen oder wenn ich jetzt zum beispiel in ein textfeld schreiben will aber an zwei verschiedenen stellen im code schreibe, nützt es dann noch was?
 
Critical Sections verhindern, daß 2 Tasks quasi gleichzeitig in ein und demselben Stück Code arbeiten.Mit EnterCriticalSection(...) oder TryEnterCriticalSection(...) forderst Du Zugriff auf eine Critical Section an. Wenn sie belegt ist, wartet die Funktion EnterCriticalSection(...), bis sie wieder frei ist. TryEnterCriticalSection(...) gibt in diesem Fall FALSE zurück.
Aber nochmal: Ich denke, es ist einfacher, wenn Du mit SendMessage(...) oder PostMessage(...) eine selbstdefinierte Nachricht an Dein Ausgabefenster schickst. dort mußt Du sie dann nur noch in der Nachrichtenbehandlung abfangen und entsprechend auswerten. Dü bräuchtest natürlich in Deinen Threads das Handle auf das Ausgabefenster.
 
Zurück