待ち時間 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 totomi  (小学生)
投稿日時
2011/5/14 10:35:16
ありがとうございます。無事に出来ました。ありがとうございます。またよろしくお願いいたします
投稿者 (削除されました)  ()
投稿日時
2011/5/14 09:45:50
(削除されました)
投稿者 (削除されました)  ()
投稿日時
2011/5/14 09:43:06
(削除されました)
投稿者 (削除されました)  ()
投稿日時
2011/5/13 13:26:03
(削除されました)
投稿者 魔界の仮面弁士  (社会人)
投稿日時
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
という感じですかね。
操作してはいけないという点に注意してください。
> 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
という感じですかね。
投稿者 totomi  (小学生)
投稿日時
2011/5/13 10:32:26
ComboBox1に1~10の数字があります。このComboBox1をBackgroundWorkerに渡したり受け取ったりは、どのようにしたら良いのでしょうか?
例えば
ComboBox1とTextBox1があります。
ComboBox1に1~10が入れてあり
BackgroundWorkerで
sleepの時間をComboBox1*1000で秒にして
sleep後にTextBox1に "終了" を表示
こんな感じにしたいです
よろしくお願いいたします。
例えば
ComboBox1とTextBox1があります。
ComboBox1に1~10が入れてあり
BackgroundWorkerで
sleepの時間をComboBox1*1000で秒にして
sleep後にTextBox1に "終了" を表示
こんな感じにしたいです
よろしくお願いいたします。
投稿者 totomi  (小学生)
投稿日時
2011/5/12 21:44:35
早々にありがとうございます。無事に出来ました。ありがとうございます。またよろしくお願いいたします
投稿者 YuO  (社会人)
投稿日時
2011/5/12 21:19:04
処理を分割可能であれば,タイマーを使って継続することで可能と言えば可能です。
ただ,BackgroundWorker等で別スレッドに処理を任せて,そのスレッド中でThread.Sleepで待った方が汎用的で簡単だと思います。
ただ,BackgroundWorker等で別スレッドに処理を任せて,そのスレッド中でThread.Sleepで待った方が汎用的で簡単だと思います。
投稿者 totomi  (小学生)
投稿日時
2011/5/12 21:11:02
VB2010で処理と処理の間に10秒間の待ち時間を設定したいのですがどうしたらよいのでしょう?sleepだと画面が止まるのでsleep以外で、なるべく正確なのがいいです。よろしくお願いいたします