次のプログラムを実行するまでに間隔をあけたい
投稿者 YuO  (社会人)
投稿日時
2012/4/25 23:54:45
・タイマーを使う
・BackgroundWorkerを使う
・Taskを使う
・非同期デリゲートを使う
・Threadを使う
あたりでしょうか。
UIスレッドでは,Thread.Sleepなどの時間がかかる処理をしてはいけません。
・BackgroundWorkerを使う
・Taskを使う
・非同期デリゲートを使う
・Threadを使う
あたりでしょうか。
UIスレッドでは,Thread.Sleepなどの時間がかかる処理をしてはいけません。
投稿者 shu  (社会人)
投稿日時
2012/4/26 08:08:51
はずしているかもしれませんが、WebBrowserを使用しているならDocumentCompletedイベントで処理
するといいかも。
するといいかも。
投稿者 ヴァン  (社会人)
投稿日時
2012/4/27 11:45:32
こんにちは。
タイマーで5秒待つのが一番シンプルだと思います。
タイマーで5秒待つのが一番シンプルだと思います。
投稿者 仮名@トム  (中学生)
投稿日時
2012/4/28 09:52:06
タイマーで待つにはどうすればいいんですか・・・
タイマーを使った経験が少なすぎて・・・
一つのプログラムを5秒に1回実行する とかはできるんですけど
複数でやるやり方がわかりません 教えてくださいお願いします
タイマーを使った経験が少なすぎて・・・
一つのプログラムを5秒に1回実行する とかはできるんですけど
複数でやるやり方がわかりません 教えてくださいお願いします
投稿者 もちだ  (社会人)
投稿日時
2012/4/28 11:47:30
順次起動していくプログラムの状態を問わないと考えると、
何度目のタイマーイベントであるかが判別できれば事足りるかなぁと今思いました。
実行回数を格納する変数を一つ宣言しておき、ボタン押下でタイマーをスタート。
タイマーイベントが起きる度に1ずつ加算してその変数の値に応じて条件分岐を行い、
起動するプログラムを指定する、とか。
目的を果たした後もカウンタの値が増えていき最終的にはオーバーフローするので、
タイマーを止めるなど対応も必要でしょう。
何度目のタイマーイベントであるかが判別できれば事足りるかなぁと今思いました。
実行回数を格納する変数を一つ宣言しておき、ボタン押下でタイマーをスタート。
タイマーイベントが起きる度に1ずつ加算してその変数の値に応じて条件分岐を行い、
起動するプログラムを指定する、とか。
Dim intTimerCnt as Integer = 0
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
intTimerCnt += 1
Select Case intTimerCnt
Case 1
MsgBox("一度目")
Case 2
MsgBox("二度目")
Case 3
MsgBox("三度目")
End Select
End Sub
目的を果たした後もカウンタの値が増えていき最終的にはオーバーフローするので、
タイマーを止めるなど対応も必要でしょう。
投稿者 仮名@トム  (中学生)
投稿日時
2012/4/28 18:10:02
Dim intTimerCnt As Integer = 0
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
intTimerCnt += 1
Select Case intTimerCnt
Case 1
MsgBox("一度目")
Case 2
MsgBox("二度目")
Case 3
MsgBox("三度目")
intTimerCnt = 0
End Select
End Sub
こんな感じでいいんですかね・・・?
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
intTimerCnt += 1
Select Case intTimerCnt
Case 1
MsgBox("一度目")
Case 2
MsgBox("二度目")
Case 3
MsgBox("三度目")
intTimerCnt = 0
End Select
End Sub
こんな感じでいいんですかね・・・?
投稿者 もちだ  (社会人)
投稿日時
2012/5/2 09:22:40
実際に動かしてみれば判ると思いますが、カウンタを0に戻すと次のタイマーイベントで+1され、
結果的に1~3をひたすら繰り返すようになります。それで問題なければ良いのですが、
そうでない場合はタイマーを止めたほうがお利口さんかと思います。
Timer1.Stop
結果的に1~3をひたすら繰り返すようになります。それで問題なければ良いのですが、
そうでない場合はタイマーを止めたほうがお利口さんかと思います。
Timer1.Stop
投稿者 shu  (社会人)
投稿日時
2012/5/2 09:36:15
> こんな感じでいいんですかね・・・?
具体的にやりたいことが分からないので
それは仮名@トム さんにしか分からないです。
教えてもらったことをヒントにいろいろ試してみて
それでも出来なかったこと、さらにわからなかったことを
聞かれると良いかと思います。
具体的にやりたいことが分からないので
それは仮名@トム さんにしか分からないです。
教えてもらったことをヒントにいろいろ試してみて
それでも出来なかったこと、さらにわからなかったことを
聞かれると良いかと思います。
投稿者 仮名@トム  (中学生)
投稿日時
2012/5/5 14:29:50
解決しました ありがとうございました
Button1をクリックすると あるプログラムが実行されて 5秒程度間隔を取ってから
また違うプログラムを実行するようにしたいんですが
検索して調べたのだと
Sleep (5000)
があったんですが フォームがフリーズしたようになってしまいます
解決策を教えて下さいお願いします