アプリケーションでアラート ボックス (ダイアログ フォーム) を表示する必要があるという要件があります。問題は、最新のアラートが最初に表示され、それを閉じると次のアラートが表示されるということです。そこで、残りのコードを実行するためにスレッドを閉じる必要がないように、ダイアログの作成を別のスレッドに移動することにしました。
以下のようなことをしました。しかし、問題は、それらがダイアログとして表示されないことです (それらを閉じずにメインフォームに移動できます)。だから私は使用することにしましたShowDialog(IWin32Window)
しかし、それは私にクロススレッド操作無効なエラーを与えます。
このケースをどのように処理しますか?
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
{
new Thread(new ThreadStart(ShowDialogue)).Start();
Thread.Sleep(1500);
}
}
private void ShowDialogue()
{
FormDialogue fd = new FormDialogue(-1);
fd.ShowDialog( );
}