スレッドでWindows.Forms.Controlを扱うとき
- 題名: スレッドでWindows.Forms.Controlを扱うとき
- 著者: nob
- 日時: 2003/11/19 16:33:59
- ID: 1495
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/11/24 2:47:01
- ID: 1558
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: nob
- 日時: 2003/11/24 16:07:47
- ID: 1561
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/11/25 3:48:12
- ID: 1572
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: nob
- 日時: 2003/11/25 15:39:08
- ID: 1582
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/11/27 3:20:07
- ID: 1605
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: nob
- 日時: 2003/11/30 1:59:50
- ID: 1631
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: スレッドでWindows.Forms.Controlを扱うとき
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/12/01 3:30:45
- ID: 1633
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
環境:Windows2000 , 言語:VB.NET2002
いつも拝見しています。nobです。
上位PCとTcpClientクラスを使用してメッセージ受信を行って、
そのメッセージを使用して処理を行うプログラムを作成しています。
frmMain:メイン画面
frmReceive:受信専用画面(受信したメッセージをListboxで表示する)
の2つのフォームがあり、frmReceiveにてスレッドにてメッセージ受信を行っています。
次のようなスレッドです。(コード長いため省略しています)
Public Sub ThreadProc()
Do
'接続
While resultConnect = False
'TcpCient作成
If Not mTcpClient Is Nothing Then
mTcpClient.Close()
mTcpClient = Nothing
End If
mTcpClient = New clsClient()
resultConnect = FncConnect()
Thread.Sleep(500)
End While
'読取
While resultReceive
reciveMessage = ""
resultReceive = mTcpClient.Receive(reciveMessage, length)
mReceiveBuff &= reciveMessage
'受信メッセージチェック
If mReceiveBuff.StartsWith(gMessage.HeaderMark) And mReceiveBuff.EndsWith(gMessage.FooterMark) Then
While mReceiveBuff.Length > 0
'受信メッセージの整形処理
oneMessage = FncMessageRemove(mReceiveBuff)
If Not oneMessage = "" Then
SyncLock Me
Dim args As Object() = {oneMessage}
Dim ar As IAsyncResult = Me.BeginInvoke(dlgtInsert, args)
ar.AsyncWaitHandle.WaitOne()
If ar.IsCompleted Then
Dim ret As Object = Me.EndInvoke(ar)
End If
End SyncLock
End If
End While
End If
Thread.Sleep(100)
End While
Loop
End Sub
スレッドの内容としては、
接続処理を行ってから、「受信処理−>ListBoxにInsert」のLoopです。
御教授頂きたいのは、この後のListBoxにあるメッセージの処理の仕方なんです。
やりたいことは、
1.ListBoxのItem(0)を取得して、Removeする。
2.その値から、frmMain上の各種オブジェクトを制御する。
なのですが、どのように取得すればいいのか分からず質問させていただきました。
下手な質問で申し訳ないのですが、どなたか、宜しくお願いします。