C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: BackgroundWorkerでの別フォーム起動


(過去ログ 149 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■86993 / inTopicNo.1)  BackgroundWorkerでの別フォーム起動
  
□投稿者/ 素人 (1回)-(2018/04/06(Fri) 19:41:47)

分類:[C#] 

.NET Framework4.5 C# Win7 64bit
お世話になります。

BackgroundWorkerでの別フォーム起動についてご教授頂けないでしょうか。
引用返信 編集キー/
■86995 / inTopicNo.2)  Re[1]: BackgroundWorkerでの別フォーム起動
□投稿者/ 魔界の仮面弁士 (1612回)-(2018/04/06(Fri) 20:10:14)
No86993 (素人 さん) に返信
> .NET Framework4.5 C# Win7 64bit
async / await は使わず、BackgroundWorker によるイベントを用いたスレッド処理ですね。


> BackgroundWorkerでの別フォーム起動についてご教授頂けないでしょうか。
目的にもよりますが、とりあえず起動するだけなら、
ShowDialog あるいは Application.Run を呼び出せば良いので

private void backgroundWorker1(object sender, DoWorkEventArgs e)
{
  Application.Run(new Form() { Text = "ワーカースレッドから呼ばれた" });
}

などと書けるかと思います。

当然、メインスレッドの Main から呼び出したフォームとは異なる UI スレッドで動作することになりますので、
このフォームのプロパティ等を、メインスレッド側から操作することが無いようご注意ください。
引用返信 編集キー/
■87000 / inTopicNo.3)  Re[2]: BackgroundWorkerでの別フォーム起動
□投稿者/ なちゃ (242回)-(2018/04/06(Fri) 21:58:39)
BackgroundWorkerだとMTAになるのでまずいかも。
基本的に別スレッドでUI起動する場合は明示的にスレッド作る必要あります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -