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

タイトル シリアル通信について
投稿日: 2013/08/29(Thu) 04:44
投稿者hoido
いつもお世話になっております。
早速ですが、シリアル通信のプログラムを現在作成しています。
プログラムの内容は以下のような感じです。

  Dim wkThread As New Thread

 'フォームが閉じるまでポートは開いたままにする
    Private Sub Form1_Load(
        SerialPort1.Open()
    End Sub

 'フォームが閉じるときポートを閉じる
    Private Sub Form1_FormClosed(
        SerialPort1.Close()
    End Sub

 'データ受信処理をスレッド処理させる
    Private Sub データ受信スタート_Click(
    wkThread = New Thread(New ThreadStart(AddressOf データ常時受信処理))
    wkThread.start
    End Sub

    Private Sub データ常時受信処理
    do
     【データ読み出しコマンド送信処理】
     【レスポンス受信処理】
          【Invokeメソッドを使用し受信データ表示】
        loop
    End Sub

 'データ受信処理が行われていれば終了させてからデータセットを行う
    Private Sub データセット_Click(
     If wkThread <> Nothing Then
             wkThread.Abort()
             wkThread.Join()
             wkThread=Nothing
          End If
     【データセットコマンド送信処理】
     【レスポンス受信処理】
          【Invokeメソッドを使用し受信データ表示】
    End Sub

上記のプログラムで動かすと(動作確認の為 [データ受信スタートボタン] と [データセットボタン]を交互に若干早くクリック)しているとたまにエラーも発生せずにプログラムが終了してしまいます。
エラーが出れば対処法を検索しようと思ったのですがそれも出来ず困っています。
スレッド処理を今回はじめて勉強して使ってみたので不安ではあるのですが・・・
または、DoからLoopの処理がいけないのか?・・・

申し訳ありませんがよろしくお願いいたします。

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

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