Articles of Multithreading

Warum wird der Destruktor einer Zukunft von `std :: async` blockiert?

Beim Versuch, eine andere Stackoverflow-Frage zu beantworten, erkannte ich, dass dieses einfache C ++ 11-Snippet den aufrufenden Thread implizit blockiert: std::async(std::launch::async, run_async_task) Für mich wäre das der kanonische C ++ 11 Weg gewesen, eine Aufgabe asynchron zu starten, ohne sich um das Ergebnis zu kümmern. Stattdessen muss man explizit einen Thread erstellen und lösen (siehe […]

Haben Sie eine Reihe von Aufgaben mit nur X auf einmal ausgeführt

Nehmen wir an, ich habe 100 Aufgaben, die etwas tun, was 10 Sekunden dauert. Jetzt möchte ich nur 10 auf einmal laufen lassen, wie wenn eine dieser 10 endet, wird eine andere Aufgabe ausgeführt, bis alle fertig sind. Jetzt habe ich immer ThreadPool.QueueUserWorkItem() für eine solche Aufgabe verwendet, aber ich habe gelesen, dass es eine […]

Wie kann man einen Thread in C # sofort beenden?

Ich verwende die thread.Abort Methode, um den Thread zu thread.Abort , aber es funktioniert nicht. Gibt es eine andere Möglichkeit, den Thread zu beenden? private void button1_Click(object sender, EventArgs e) { if (Receiver.IsAlive == true) { MessageBox.Show(“Alive”); Receiver.Abort(); } else { MessageBox.Show(“Dead”); Receiver.Start(); } } Ich benutze dies, aber jedes Mal, wenn ich den Status […]

Crossthread-Operation nicht gültig … – VB.NET

Ich benutze vb.net, und in meinem Programm erhalte ich den Fehler “Crossthread-Operation nicht gültig”, wenn ich meinen Hintergrundarbeiter starte, der dieses Textfeld aktiviert. Mein Haupt-Sub wird zuerst die Aktivierung zu false machen, und wenn der Hintergrundarbeiter läuft, wird es wieder auf True und dann auf Exit gesetzt. Warum gibt es mir einen Fehler? Zu Ihrer […]

Java: Starten eines neuen Threads in einem Konstruktor

Warum startet ein neuer Thread in einem Konstruktor, der in Java (oder anderswo) verpönt ist? Ich bekomme Warnungen von Netbeans dafür, aber es gibt mir keine Refactoring-Vorschläge. Ich schreibe eine Client / Server-Swing-Anwendung, und der Thread, den ich starte, befindet sich im JFrame-Konstruktor des Servers, um kontinuierlich nach Client-Datagrammen zu lauschen. Warum ist das keine […]

Warum ist es nicht empfehlenswert, auf Boolean zu synchronisieren?

Mein Architekt sagt das immer Synchronisieren Sie niemals auf Boolean Ich bin nicht in der Lage den Grund dafür zu verstehen und würde es wirklich schätzen, wenn jemand mit einem Beispiel erklären könnte, warum es keine gute Praxis ist. Referenz Beispielcode private Boolean isOn = false; private String statusMessage = “I’m off”; public void doSomeStuffAndToggleTheThing(){ […]

MVC Progress Bar Threading

Ich verwende ein MVC-Muster für mein Design, wenn ein Benutzer die Suchtaste drückt, rufe ich eine Suche im Modell auf, aber ich möchte auch eine Fortschrittsleiste mit Informationen aktualisieren, die von diesem Modell zurückgegeben werden. Ich habe versucht, einen Swingworker zu verwenden, aber der Fortschrittsbalken wird nicht aktualisiert. Ich vermute, dass ich mit meinem Threading […]

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, […]