待ち時間

タグの編集
投稿者 totomi  (小学生) 投稿日時 2011/5/12 21:11:02
VB2010で処理と処理の間に10秒間の待ち時間を設定したいのですがどうしたらよいのでしょう?sleepだと画面が止まるのでsleep以外で、なるべく正確なのがいいです。よろしくお願いいたします
投稿者 YuO  (社会人) 投稿日時 2011/5/12 21:19:04
処理を分割可能であれば,タイマーを使って継続することで可能と言えば可能です。
ただ,BackgroundWorker等で別スレッドに処理を任せて,そのスレッド中でThread.Sleepで待った方が汎用的で簡単だと思います。
投稿者 totomi  (小学生) 投稿日時 2011/5/12 21:44:35
早々にありがとうございます。無事に出来ました。ありがとうございます。またよろしくお願いいたします
投稿者 totomi  (小学生) 投稿日時 2011/5/13 10:32:26
ComboBox1に1~10の数字があります。このComboBox1をBackgroundWorkerに渡したり受け取ったりは、どのようにしたら良いのでしょうか?

例えば

ComboBox1とTextBox1があります。

ComboBox1に1~10が入れてあり

BackgroundWorkerで
sleepの時間をComboBox1*1000で秒にして
sleep後にTextBox1に "終了" を表示 

こんな感じにしたいです
よろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/5/13 12:41:13
BackgroundWorker を使うのであれば、DoWork イベント内からフォーム上のコントロールを
操作してはいけないという点に注意してください。

> ComboBox1に1~10の数字があります。このComboBox1をBackgroundWorkerに渡したり受け取ったりは
BackgroundWorker から CombBox を受け取るという質問の意図が良く分かりませんが、
渡すべきは「ComboBox1」ではなく、「ComboBox1 から得た 1~10 の数字」のはずです。
ComboBox 上で選択された値を取り出す方法はわかりますか?

---
BackgroundWorker の処理を呼び出す場合、RunWorkerAsync メソッドの引数にてデータを渡せます。

DoWork イベント内では、引数から e.Argument を使って、そのデータを受け取る事ができます。
結果を返却する必要がある場合は、e.Result に結果を書き込んでください。

処理が終わると RunWorkerCompleted イベントが発生します。処理結果を受け取る場合は、
イベントの引数 e.Result から取り出してやれば OK です。


> こんな感じにしたいです
BackgroundWorker を使って待ち合わせるのであれば、たとえば

 Sub Button1_Click(~
  Button1.Enabled = False
  TextBox1.Text = "待機中"
  BackgroundWorker1.RunWorkerAsync(待ち時間)
 End Sub

 Sub BackgroundWorker1_DoWork(~
  Dim millisecondsTimeout As Integer = CInt(e.Argument)
  System.Threading.Thread.Sleep(millisecondsTimeout)
 End Sub

 Sub BackgroundWorker1_RunWorkerCompleted(~
  TextBox1.Text = "終了"
  Button1.Enabled = True
 End Sub

という感じになりますし、Timer を使う場合には、

 Sub Button1_Click(~
  Button1.Enabled = False
  TextBox1.Text = "待機中"
  Timer1.Interval = 待ち時間
  Timer1.Start()
 End Sub

 Sub Timer1_Tick(~
  Timer1.Stop()
  TextBox1.Text = "終了"
  Button1.Enabled = True
 End Sub

という感じですかね。
投稿者 (削除されました)  () 投稿日時 2011/5/13 13:26:03
(削除されました)
投稿者 (削除されました)  () 投稿日時 2011/5/14 09:43:06
(削除されました)
投稿者 (削除されました)  () 投稿日時 2011/5/14 09:45:50
(削除されました)
投稿者 totomi  (小学生) 投稿日時 2011/5/14 10:35:16
ありがとうございます。無事に出来ました。ありがとうございます。またよろしくお願いいたします