Ich habe mal versucht folgendes Beispiel aus dem neuen Entwickler Magazin zu Compilen: Überraschend einfache Thread-Programmierung in C# mittels der BackgroundWorker-Komponente
Mein Code dazu sieh folgendermaßen aus:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ThreadTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonStart_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
AufwaendigerVorgang2(worker, e);
}
private void backgroundWorker1_RunWorkerCompleted()
{
}
private void buttonStop_Click(object sender, EventArgs e)
{
backgroundWorker1.CancelAsync();
}
private void backgroundWorker1_ProgressChanged(ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void AufwaendigerVorgang2(BackgroundWorker worker, DoWorkEventArgs e)
{
for (int i = 1; i ≤ 10; i++)
{
if (worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
worker.ReportProgress(i * 10);
Thread.Sleep(1000);
}
}
}
}
Danke schonmal im Vorraus!
Greetz
Dario