前提・実現したいこと
今Taskの動作を確認しています。
ラベルコントロールを2つ配置、それぞれ0~9999まで、一方はカウントアップ、もう一方はカウントダウンし、UIに反映させたいと思っています。
動作確認用のソースですので、この処理自体に意味はありません。
発生している問題・エラーメッセージ
Taskが一つであれば(カウントアップのみ、カウントダウンのみ実行した場合)
UIはロックされませんが、2つ実行するとロックされてしまいます。
(画面にカウントアップ、カウントダウンの状況は反映されますが、フォームを移動しようとしても移動できません)
これをUIがロックされないよう(フォームを移動可能)にするにはどうしたら実現できますでしょうか?
該当のソースコード
C#
ソースコード
private void Form1_Load(object sender, EventArgs e)
{
Task.Run(() => CountUp());
Task.Run(() => CountDown());
}
private void CountUp() { for (int i = 0; i < 10000; i++) { this.label1.Invoke((MethodInvoker)(() => { this.label1.Text = i.ToString(); this.label1.Refresh(); })); } } private void CountDown() { for (int i = 10000; i >= 0; i--) { this.label2.Invoke((MethodInvoker)(() => { this.label2.Text = i.ToString(); this.label2.Refresh(); })); } }
補足情報(FW/ツールのバージョンなど)
・.net framework 4.7.2
・windows form
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/13 12:47