tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: スレッドの分岐処理について
投稿日: 2012/02/27(Mon) 20:43
投稿者rauichi
> > measureAは2項目の測定値を配列に格納し,2項目目の
> > 測定値の格納後に測定値格納の通知(測定値格納1回目完了)
> >
> > measureBは1項目の測定値を配列に格納し,1項目目の
> > 測定値の格納後に測定値格納の通知(測定値格納1回目完了)
>
> それぞれのスレッドは、スレッドセーフであることが保証されているでしょうか。
>
> また、例外対策は実施されていますか?
> http://gushwell.ldblog.jp/archives/23832333.html
>
>
> >> わざわざToUpperして小文字を含む文字列と比較していますが,何か意図があるのでしょうか。
> > 文字列の大文字化には特に意図はありません.
> ToUpper で大文字化された文字列が "kikaiA" や "kikaiB" と
> 一致するはずは無いので、t や t1 のスレッドは
> どうやっても実行されないように思えます。
>
> # それ以前に、そもそも元のコードは文法違反な気が……。(^_^;)

たびたび説明不測ですいません.

スレッドを停止させるために,
設備エラーをわざと発生させて停止させる仕様になっています.

たとえば,100回の測定を実施するように引数を指定した場合は,
tのスレッドは90回目で意図した設備エラーと別の設備エラーで停止してしまう状況です.

スレッドセーフや例外対策は実施した方がよいのでしょうか.
できれば,VB2005での実施方法を教えていただけないでしょうか.
よろしくお願いします.

初めに紹介したコードに間違いがあったので,訂正版を以下に示します.
Public Sub measure(ByVal n As Integer)

Dim s As Settings = Settings.GetSettings

If (s.GetValue("Main","kikai").ToUpper = "KIKAIA") Then

   Dim t As New System.Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf MeasureA))
   t.isBackground = true
   t.Start(n)
ElseIf (s.GetValue("Main","kikai").ToUpper = "KIKAIB")  Then

   Dim t1 As New System.Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf MeasureB))
   t1.isBackground = true
   t1.Start(n)

End If

End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。