Suchergebnisse

Suchergebnisse 1-5 von insgesamt 5.

  • Benutzer-Avatarbild

    Hi verwende doch direkt Threads - ggf. auch einfach aus dem ThreadPool - und verwende eine Semaphore zum synchronisieren der Threads, um auf ausstehende Aufträge zu warten. Gruß ~blaze~

  • Benutzer-Avatarbild

    BGWs sind nur Komponenten, die einen Thread kapseln. Die sollten gleich funktionieren. Gruß ~blaze~

  • Benutzer-Avatarbild

    Wenn Arbeit parallel ausgeführt wird, kann man zum Beispiel über Events, eine Zählvariable und Monitoring den GUI-Thread über das Ende der asynchronen Operationen informieren. Hierbei dekrementiert jeder Thread die Zählvariable, sobald er ausgeführt wird und inkrementiert sie wieder, sobald er wieder aktiv wird. Sobald der Wert 0 annimmt, wird ein Ereignis ausgelöst (im beschriebenen Fall ist das halt im Vgl. zum Semaphor vereinfacht dargestellt). Wäre in dem Fall wahrsch. sogar besser, als der …

  • Benutzer-Avatarbild

    Das müsste man dann aber über ein gemeinsames Objekt machen, das per SyncLock gesperrt wird. Sonst kann es sein, dass ein BGW während der Abfrage auf IsBusy noch aktiv ist. BackgroundWorker würde ich aber eher nicht verwenden, sondern direkt über ThreadPool- oder eigene Threads arbeiten. @petaod: Theoretisch könnte es doch sogar passieren, dass zwischen Auslesen und Setzen der Flags ein Setzvorgang stattfindet. Interlocked bietet ja Or glaub' ich nicht an. Was man auf jeden Fall machen könnte, w…

  • Benutzer-Avatarbild

    Naja, es erleichtert die Verwendung im GUI-Bereich geringfügig, da man sich nicht um die ganzen Threading-Sachen selber kümmern muss, aber eigentlich ist es eher sinnlos, extra eine Komponente für ein paar Callbacks per Invoke zu machen, etc. Wie gesagt, BGWs kapseln einfach einen Thread - vmtl. aus dem ThreadPool. Meist kann man das selber problemlos, insofern ist halt der BGW überflüssig. Um mehr als einen BGW zu verwenden, müsste man mehrere Komponenten oder sogar per Code erzeugen. Dann wär'…