清单5:
namespace SilverlightMultiThread
{
public partial class BackgroundWorkerTestPage : Page
{
System.ComponentModel.BackgroundWorker _backgroundWorker;
public BackgroundWorkerTestPage()
{
InitializeComponent();
_backgroundWorker = new System.ComponentModel.BackgroundWorker();
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(_backgroundWorker_ProgressChanged);
_backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(_backgroundWorker_DoWork);
_backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(_backgroundWorker_RunWorkerCompleted);
}
private void btnStart_Click(object sender, RoutedEventArgs e)
{
if (!_backgroundWorker.IsBusy)
_backgroundWorker.RunWorkerAsync("Need Parameter!");
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
if (_backgroundWorker.WorkerSupportsCancellation)
_backgroundWorker.CancelAsync();
}
void _backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
for (int i = 0; i < 10; i++)
{
if ((_backgroundWorker.CancellationPending == true))
{
e.Cancel = true;
break;
}
else
{
public partial class BackgroundWorkerTestPage : Page
{
System.ComponentModel.BackgroundWorker _backgroundWorker;
public BackgroundWorkerTestPage()
{
InitializeComponent();
_backgroundWorker = new System.ComponentModel.BackgroundWorker();
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(_backgroundWorker_ProgressChanged);
_backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(_backgroundWorker_DoWork);
_backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(_backgroundWorker_RunWorkerCompleted);
}
private void btnStart_Click(object sender, RoutedEventArgs e)
{
if (!_backgroundWorker.IsBusy)
_backgroundWorker.RunWorkerAsync("Need Parameter!");
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
if (_backgroundWorker.WorkerSupportsCancellation)
_backgroundWorker.CancelAsync();
}
void _backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
for (int i = 0; i < 10; i++)
{
if ((_backgroundWorker.CancellationPending == true))
{
e.Cancel = true;
break;
}
else