タイトル : シリアル通信について 投稿日 : 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の処理がいけないのか?・・・ 申し訳ありませんがよろしくお願いいたします。 |