| 

.NET C# Java Javascript Exception

6
Ich will eine längere Berechnung in den Hintergrund schicken. Wie kann ich das machen? Wie erhalte ich die Werte aus dem Thread wieder zurück?
News:
06.02.2011
SMARTIE 85 1 5
3 Antworten
6
Ein kleines einfaches Beispiel mit der Backgroundworker-Klasse

static void Main(string[] args)
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.RunWorkerAsync();

Console.ReadLine();
}

static void bw_DoWork(object sender, DoWorkEventArgs e)
{
//längere Berechnung hier
e.Result = "Ergebnis der länderen Berechnung hier";
}

static void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//Ergebnis der länderen Berechnung
Console.WriteLine(e.Result);
}
06.02.2011
Mario Priebe 6,0k 3 9
2
Um nicht alles zu kopieren, verweise ich einfach mal auf mein Blog:
Backgroundworker mit Windows Forms
06.02.2011
Joachim 3,1k 4 9
1
Wenn du .NET 4 benutzt, kann du auch die Klasse Task verwenden, das vereinfacht dir auch die Rückgabe von Ergebnissen um einiges.
06.02.2011
Andy Stumpp 509 1 6
Um die GUI aus deinem Task zu ändern, kannst Du TaskScheduler.FromCurrentSynchronizationContext verwenden.
alexander 06.02.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH