Articles of Multithreading

std :: thread pass by reference ruft Kopierkonstruktor auf

Nun, ich habe ein Problem mit der Weitergabe von Daten in einen Thread mit std :: thread. Ich dachte, ich verstehe die allgemeine Semantik von Kopierern usw., aber es scheint, dass ich das Problem nicht ganz verstehe. Ich habe eine einfache class namens Log, die ihren Kopierkonstruktor so versteckt hat: class Log { public: Log(const […]

SwingWorker in Java

Ich habe ein Problem. Ich habe einen JFrame . Es wird einen JDialog erstellen. Wenn die Taste auf JDialog gedrückt wird, sollte sie entsorgt werden und eine E-Mail sollte gesendet werden. Zur selben Zeit brauche ich einen anderen JDialog , der mit der unbestimmten JProgressBar . Wenn eine E-Mail gesendet wird, sollte JDialog entweder entsorgt […]

Warum werden die meisten UI-Frameworks mit einem einzigen Thread versehen?

Zum Beispiel verwenden Java Swing und Android UI beide ein Single-Threaded-Modell, bei dem ein einzelner UI-Thread für die Aktualisierung der gesamten Benutzeroberfläche zuständig ist. Was hat die Framework-Designer dazu gebracht, ein Thread-Modell gegenüber dem anderen zu wählen? Könnte nicht ein Multi-Threading-UI-Modell Ihnen möglicherweise mehr performance bringen, wenn auch auf Kosten höherer Komplexität? Mir ist klar, […]

‘Using’ Aussage vs ‘endlich versuchen’

Ich habe eine Reihe von Eigenschaften, mit denen ich Lese- / Schreibsperren verwenden werde. Ich kann sie entweder mit einem try finally oder einer using Klausel implementieren. Bei dem try finally würde ich try finally das Schloss vor dem try erwerben, und im try freigeben. In der using Klausel würde ich eine class erstellen, die […]

Java hat die Sperrung zweimal überprüft

Ich habe kürzlich einen Artikel über das doppelt überprüfte Sperrmuster in Java und seine Fallstricke gelesen und nun frage ich mich, ob eine Variante dieses Musters, die ich seit Jahren verwende, irgendwelchen Problemen unterliegt. Ich habe viele Beiträge und Artikel zu diesem Thema angeschaut und verstehe die möglichen Probleme mit dem Verweis auf ein teilweise […]

Ist der Zugriff auf eine Variable in C # eine atomare Operation?

Ich bin dazu gebracht worden zu glauben, dass, wenn mehrere Threads auf eine Variable zugreifen können, alle Lesevorgänge von und Schreiben in diese Variable durch einen Synchronisierungscode geschützt sein müssen, wie eine “lock” -statement, weil der processor möglicherweise zu einem anderen Thread in der Mitte wechselt ein schreiben. Ich habe jedoch System.Web.Security.Membership mit Reflector gesucht […]

Verlaufen C # Timer auf einem separaten Thread?

Verläuft ein System.Timers.Timer in einem separaten Thread als der Thread, der ihn erstellt hat? Sagen wir, ich habe eine class mit einem Timer, der alle 5 Sekunden ausgetriggers wird. Wenn der Timer ausgetriggers wird, wird in der verstrichenen Methode ein Objekt geändert. Nehmen wir an, es dauert sehr lange, um dieses Objekt zu modifizieren, zB […]

Gleichzeitige HashSet in .NET Framework?

Ich habe folgende class. class Test{ public HashSet Data = new HashSet(); } Ich muss das Feld “Daten” von verschiedenen Threads ändern, daher möchte ich einige Meinungen über meine aktuelle Thread-sichere Implementierung. class Test{ public HashSet Data = new HashSet(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) Data.Remove(Val); } } […]

Gibt es eine Möglichkeit, einen Thread auf unbestimmte Zeit anzuhalten?

Ich habe in meiner Freizeit an einer Web-Crawling-.NET-App gearbeitet, und eine der functionen dieser App, die ich einfügen wollte, war eine Pause-Schaltfläche, um einen bestimmten Thread anzuhalten. Ich bin relativ neu in Multi-Threading und ich war nicht in der Lage, eine Möglichkeit zu finden, einen Thread auf unbestimmte Zeit anzuhalten, der momentan unterstützt wird. Ich […]

Wie wird eine Aufgabe in C # 4.0 in den Ruhezustand versetzt (oder verzögert)?

Es gibt Task.Delay in .NET 4.5 Wie kann ich dasselbe in .NET 4.0 machen?