Hallo zusammen,
Ich habe ein Problem mit einer Progressbar in Verbindung mit Multithreading. Ich weiß nicht, wie ich aus dem zweiten Thread heraus die Progressbar steuern kann:
Ich habe eine Methode start in einer Klasse Solver, die aus der Klasse Form1 heraus in einem neuem Thread Berechnung durchführen soll:
hier ein Auszug aus der Klasse Solver:
Die Klasse Form1 besitzt die Progressbar progBar1. Diese soll durch die for-Schleife in Solver.Start() "gefüllt" (also PerformStep) werden.
Mir ist bisher nur eine Möglichkeit eingefallen, wie ich das machen könnte: Ich hätte ein Integer veröffentlicht, bei dem ein Ereignis ausgelöst wird, wenn sich sein Wert ändert. Leider kann ich nirgends finden, wie ich ein solches Ereignis definiert werden kann.
Ich habe aber auch das Gefühl, dass es wohl für dieses Problem noch eine andere Lösung geben wird. Die Beispielen, die ich bisher gefunden habe, sind jedoch recht kompliziert und für mich schwer nachzuvollziehen.
Kann mir bitte jemand eine verständliche Hilfestellung geben?
Ich habe ein Problem mit einer Progressbar in Verbindung mit Multithreading. Ich weiß nicht, wie ich aus dem zweiten Thread heraus die Progressbar steuern kann:
Ich habe eine Methode start in einer Klasse Solver, die aus der Klasse Form1 heraus in einem neuem Thread Berechnung durchführen soll:
C#:
class Form1
public Form1()
{
initialcomponents();
//…
Solver solver = new Solver();
ThreadStart TStart;
TStart = new ThreadStart(solver.Start);
Thread firstThread = new Thread(TStart);
// Thread starten
firstThread.Start();
}
C#:
class Solver
public Solver()
{
}
public void Start()
{
for(int i=0; i<100;i++)
{
//Berechnung durchführen
//…
//Prozessbar PerformStep?
}
}
Mir ist bisher nur eine Möglichkeit eingefallen, wie ich das machen könnte: Ich hätte ein Integer veröffentlicht, bei dem ein Ereignis ausgelöst wird, wenn sich sein Wert ändert. Leider kann ich nirgends finden, wie ich ein solches Ereignis definiert werden kann.
Ich habe aber auch das Gefühl, dass es wohl für dieses Problem noch eine andere Lösung geben wird. Die Beispielen, die ich bisher gefunden habe, sind jedoch recht kompliziert und für mich schwer nachzuvollziehen.
Kann mir bitte jemand eine verständliche Hilfestellung geben?