Dart.Mail 名前空間 > TcpBase クラス > Marshal メソッド : Marshal(Data,String,Object) メソッド |
このメソッドは、通常は表示目的のために、データをワーカースレッドからUIスレッドにマーシャリングする場合に使用します。 このメソッドはOnDataメソッドを呼び出し、Dataイベントを発生させます。
イベントハンドラでのUIコントロールの更新については、SynchronizingObjectプロパティを参照してください。
private void button1_Click(object sender, EventArgs e) { // 別のスレッドでデータを受信します。 myComponent.Start(readLoopWorker, null); } private void readLoopWorker(object state) { // リモートホストから送信されたときにデータを受信します。 byte[] buffer = new byte[1024]; Data data = myComponent.Read(buffer); while (data != null) { myComponent.Marshal(data, "", null); data = myComponent.Read(buffer); } myComponent.Close(); } private void myComponent_Data(object sender, Dart.Sockets.DataEventArgs e) { // データが受信されるたびに、そのデータを表示します。 textDisplay.AppendText(e.Data.ToString()); }
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 別のスレッドでデータを受信します。 myComponent.Start(AddressOf readLoopWorker, Nothing) End Sub Private Sub readLoopWorker(ByVal state As Object) ' リモートホストから送信されたときにデータを受信します。 Dim buffer(1023) As Byte Dim data As Data = myComponent.Read(buffer) Do While data IsNot Nothing myComponent.Marshal(data, "", Nothing) data = myComponent.Read(buffer) Loop myComponent.Close() End Sub Private Sub myComponent_Data(ByVal sender As Object, ByVal e As Dart.Sockets.DataEventArgs) Handles myComponent.Data ' データが受信されるたびに、そのデータを表示します。 textDisplay.AppendText(e.Data.ToString()) End Sub