これが私のコードでのやり方です: backgroundWorker DoWork イベントで私がしたこと:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
_busy.WaitOne();
this.Invoke(new MethodInvoker(delegate { label2.Text = "Website To Crawl: "; }));
this.Invoke(new MethodInvoker(delegate { label4.Text = mainUrl; }));
webCrawler(mainUrl, levelsToCrawl, e);
}
次に、一時停止ボタンのクリック イベントで、次のことを行いました。
private void button4_Click(object sender, EventArgs e)
{
_busy.Reset();
}
再開ボタンのクリックイベントで私がした:
private void button5_Click(object sender, EventArgs e)
{
_busy.Set();
}
しかし、クリックしてプロセスを開始しても機能しません。
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
button1.Enabled = false;
this.Text = "Processing...";
label6.Text = "Processing...";
label6.Visible = true;
button2.Enabled = false;
checkBox1.Enabled = false;
checkBox2.Enabled = false;
numericUpDown1.Enabled = false;
button3.Enabled = true;
}
再開ボタンをクリックしたときにのみプロセスが開始され、一時停止ボタンをクリックしても何も起こりません。
プロセスの開始ボタンをクリックすると、通常の backgroundWorker が開始され、一時停止ボタンをクリックすると一時停止し、再開ボタンをクリックすると再開されるようにします。
私は何を間違えましたか?誰かが私のコードを修正できますか?