WPFで時間軸に沿ってユーザにウインドウを表示したいと思いこんなソースを書いたのですがうまく動きません.
こういったことをやりたい場合どのようにするのが良いのでしょうか.
よろしくお願いいたします.
Task.Runにこだわっているわけではありません.私の知識ではこれを使うくらいしかひねり出せなかったためTask.Runを使用しています.
###やりたいこと
Startボタンを押すと,
MyWindow1が開く
↓
1秒後にMyWindow1が閉じる
※MyWindow1は自分で追加した新しいウインドウです.
↓
X秒後にMyWindow2が開く…
↓
Y秒後にMyWindow2が閉じる…
以下繰返しMyWindow[N]まで続く… ※下記ソースにはMyWindow1しか書いていません
実際には,MyWindowが開いている裏でシリアル通信をしたり...メインウインドウのGUIを更新したり,,,したい
###どうなるか
MyWindowが開かない
Task.Runの外(前)でshowすればもちろん開く
C#
1private Button_Start_Click(object sender, RoutedEventArgs e){ 2 var sw = new StopWatch(); //時間計測 3 sw.start(); 4 bool flag = true; 5 6 Task.Run(()=>{ 7 while(true){ 8 var mw = new MyWindow(); 9 Dispatcher.BeginInvoke((Action)(() =>{ 10 mw.show(); //mwが表示されない 11 })); 12 if(sw.ElapsedMilliseconds > 1000 && flag){ //1000ms後に閉じてほしい 13 Dispatcher.BeginInvoke((Action)(() =>{ 14 mw.close(); //そもそも表示してないので意味がない 15 })); 16 flag = false; 17 } 18 } 19 }); 20} 21
回答3件
あなたの回答
tips
プレビュー