Articles of Multithreading

ThreadStart mit Parametern

Wie startest du einen Thread mit Parametern in C #?

Primzahlen von Eratosthenes schneller sequentiell als gleichzeitig?

Ich schreibe gerade ein Programm, das zuerst durch das Sieb von Eratosthenes nacheinander und dann gleichzeitig Primzahlen erzeugt. Die gleichzeitige Version des Algorithmus soll schneller sein als die sequentielle, aber in meinem Fall ist die gleichzeitige Version ca. 10 mal langsamer. Ich frage mich, wo ich die zusätzliche Arbeit an meinen Threads im Vergleich zum […]

Mutex Beispiel / Tutorial?

Ich bin neu im Multithreading und habe versucht zu verstehen, wie Mutexe funktionieren. Habe viel Googling und ich ein anständiges Tutorial gefunden , aber es hat immer noch einige Zweifel darüber wie es funktioniert, weil ich mein eigenes Programm erstellt habe, in dem Locking nicht funktioniert hat. Eine absolut nicht intuitive Syntax des Mutex ist […]

Wie kann ich warten, bis ein BackgroundWorker abbricht?

Betrachten Sie eine hypothetische Methode eines Objekts, das Sachen für Sie erledigt: public class DoesStuff { BackgroundWorker _worker = new BackgroundWorker(); … public void CancelDoingStuff() { _worker.CancelAsync(); //todo: Figure out a way to wait for BackgroundWorker to be cancelled. } } Wie kann man auf einen BackgroundWorker warten? In der Vergangenheit haben Menschen versucht: while […]

Ist es legal, die Startmethode zweimal im selben Thread aufzurufen?

Der folgende Code führt zu java.lang.IllegalThreadStateException: Thread already started als ich die Methode start() zweite Mal im Programm aufgerufen habe. updateUI.join(); if (!updateUI.isAlive()) updateUI.start(); Dies geschieht beim zweiten updateUI.start() . Ich habe es mehrmals durchlaufen und der Thread wird aufgerufen und vollständig ausgeführt, bevor er updateUI.start() trifft. Das Aufrufen von updateUI.run() vermeidet den Fehler, führt […]

HintergrundWorker RunWorkerCompleted Event

Meine C # -Anwendung hat mehrere Hintergrundarbeiter. Manchmal feuert ein Hintergrundarbeiter einen anderen ab. Wenn der erste Hintergrund-Worker abgeschlossen und das RunWorkerCompleted Ereignis ausgetriggers wurde, auf welchem ​​Thread wird dieses Ereignis ausgetriggers, die UI oder der erste Hintergrund-Worker, von dem RunWorkerAsync aufgerufen wurde? Ich verwende Microsoft Visual C # 2008 Express Edition. Irgendwelche Gedanken oder […]

Zugriff auf UI (Main) Thread sicher in WPF

Ich habe eine Anwendung, die mein Datagrid jedes Mal aktualisiert, wenn eine Protokolldatei, die ich gerade sehe, auf folgende Weise aktualisiert wird (mit neuem Text angehängt): private void DGAddRow(string name, FunctionType ft) { ASCIIEncoding ascii = new ASCIIEncoding(); CommDGDataSource ds = new CommDGDataSource(); int position = 0; string[] data_split = ft.Data.Split(‘ ‘); foreach (AttributeType at […]

CoreData: Warnung: Die angegebene class konnte nicht geladen werden

Ich kopiere eine existierende Objective-C TV Show App auf eine neue Swift-Version mit Xcode 6.1 und habe einige Probleme mit CoreData. Ich habe ein Modell von 4 Entitäten erstellt, ihre NSManagedObject-Unterklasse (in Swift) erstellt, und für alle Dateien wurden die richtigen App-Ziele festgelegt (für ‘Kompilierquellen’). Ich erhalte immer noch diesen Fehler, wenn ich versuche, eine […]

Führen Sie die Aufgabe im Hintergrund in der WPF-Anwendung aus

Beispiel private void Start(object sender, RoutedEventArgs e) { int progress = 0; for (;;) { System.Threading.Thread.Sleep(1); progress++; Logger.Info(progress); } } Was ist der empfohlene Ansatz (TAP oder TPL oder BackgroundWorker oder Dispatcher oder andere), wenn ich Start () möchte blockiere nicht den ui thread kann Fortschrittsberichte bereitstellen kann abgebrochen werden unterstützt Multithread und Multicore

Wie kann ich die processoraffinität in .NET festlegen?

Können zwei Threads oder zwei Tasks in einer C # -Anwendung mit unterschiedlicher processoraffinität ausgeführt werden? Ich habe gelesen über SetThreadAffinityMask aber habe kein Beispiel gefunden, wie das verwendet werden sollte. Oder gibt es eine Möglichkeit für TPL (Task Parallel Library), zwei Threads / Tasks mit hoher Priorität auszuführen, um 100% CPU zu verwenden?