Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
待ち時間
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10215#CommentId20563
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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
という感じですかね。