0
Backgroundworker
を使用して、メインUIスレッドを開いたままにして、フリーズしないようにしています。私はコードを実行していて、一度ヒットしたばかりのbackgroundWorker1.RunWorkerAsync();
の両方にブレークポイントを設定しており、決してヒットしなかったforeach
行目にブレークポイントを設定しています。BackgroundWorkerイベントが実行されない
バックグラウンドワーカーを使用する適切な方法は何ですか?
public Form1()
{
InitializeComponent();
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.WorkerSupportsCancellation = true;
}
private void btnQuery_Click(object sender, EventArgs e)
{
grid1.Rows.Clear();
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
foreach (string name in studentRoster)
{
InsertIntoDB();
}
}
あなたの背景労働者が使用中であるかどうかを確認します。すでに実行中の場合は、再び実行されません。 'if(!backgroundWorker1.IsBusy) { \t backgroundWorker1.RunWorkerAsync(); } ' – Baddack
これはビジーではありません。あなたの構文で確認しました:) – IcyPopTarts
'backgroundWorker1 + = backgroundWorker1_DoWork'が存在することを確認してください。多分Form1.designer.csにありますか? – skyoxZ