On 25.09.2012 12:23, Vinzent Hoefler wrote:
wg wrote:
ich wolle nur niemanden mit folgender Aufgabenstellung langweilen: Thread 1 mit GUI, Daten werden von thread 2 via queue geliefert. Thread 1 kann mit Button (oder Key) thread 2 *an belibeiger* Stelle pausieren lassen.
Jetzt muß ich doch mal blöd fragen: Wozu? Wenn die Queue voll ist, wird Thread 2 doch ohnehin angehalten, weil er nix mehr schreiben kann. Damit wäre es von Thread 1 aus am einfachsten, die Queue nicht mehr auszulesen, um Thread 2 schlafen zu legen.
Notfalls kann man auch an der Queue-Semantik ein wenig rumschrauben und dort etwas wie "jetzt keine Nachrichten mehr akzeptieren, auch wenn Queue noch nicht voll ist" implementieren.
Vinzent.
Das ist eine realtime Videoüberwachung und der workerthread 2 führt Aktionen durch, die u.U. vom GUI aus *sofort* angehalten werden sollen. Der thread 2 ist tief verschachtelt, eine Abfrage 'kann i weitermachen' müsste an vielen Stellen eingebaut werden. Wolf