2 つのタスクを並行して実行する必要があります。GUI にデータをロードします。それまでは、進行状況バーをユーザーの前で継続的に実行したいと考えています。BackgroundWorker を試しましたが、スレッド同期エラーが発生しています。誰かが私に同じことをするための他の最善の方法を提案できますか?
コード: backgroundWorker1 初期化:
backgroundWorker1 = new BackgroundWorker();
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
if (backgroundWorker1.IsBusy != true)
{
backgroundWorker1.RunWorkerAsync();
}
次の行でエラーが発生します:
XmlDocumentHierarchy _remoteObj = new XmlDocumentHierarchy(comboBox2.Text, "username", "password");
は:
"Cross-thread operation not valid: Control 'comboBox2' accessed from a thread other than the thread it was created on."