Ich übe auf Threading und stieß auf dieses Problem. Die Situation ist so:
Ich habe 4 Fortschrittsbalken in einem einzigen Formular, einen zum Herunterladen einer Datei, einen zum Anzeigen des Ladezustands der Seite usw. ...
Ich muss den Fortschritt jeder ProgressBar über einen separaten Thread steuern.
Das Problem ist, dass ich eine InvalidOperationException bekomme, in der
stehtCross-thread-Operation nicht gültig: Steuerung 'progressBar1', auf die von zugegriffen wird ein anderer Thread als der Thread, auf dem er erstellt wurde.
Habe ich einen falschen Ansatz oder kann mir jemand sagen, wie ich das umsetzen soll?
Auf die UI-Elemente kann nur vom UI-Thread zugegriffen werden. WinForms und WPF / Silverlight erlauben keinen Zugriff auf Steuerelemente aus mehreren Threads.
Sie können das Control.InvokeRequired -Flag überprüfen und Verwenden Sie dann gegebenenfalls die Methode Control.Invoke . Control.Invoke verwendet einen Delegaten, damit Sie die integrierte Aktion & lt; T & gt;.
verwenden können %Vor%Tags und Links c# multithreading winforms