GrapeCity Secure FTP for .NET 4.0J
Marshal(Data,String,Object) メソッド
使用例 

マーシャリングするData
マーシャリングするテキストメッセージ。
マーシャリングする状態情報。
データをUIスレッドにマーシャリングします。
シンタックス
Public Overloads Sub Marshal( _
   ByVal data As Data, _
   ByVal message As String, _
   ByVal state As Object _
) 
public void Marshal( 
   Data data,
   string message,
   object state
)

パラメータ

data
マーシャリングするData
message
マーシャリングするテキストメッセージ。
state
マーシャリングする状態情報。
解説

このメソッドは、通常は表示目的のために、データをワーカースレッドからUIスレッドにマーシャリングする場合に使用します。 このメソッドはOnDataメソッドを呼び出し、Dataイベントを発生させます。

イベントハンドラでのUIコントロールの更新については、SynchronizingObjectプロパティを参照してください。

使用例
以下のサンプルコードは、ワーカースレッドでReadをループ処理してデータをUIにマーシャリングする方法を示します。
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 readLoopWorke(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 DataEventArgs) Handles myComponent.Data
    ' データが受信されるたびに、そのデータを表示します。
    textDisplay.AppendText(e.Data.ToString())
End Sub
参照

関連項目

TcpBase クラス
TcpBase メンバ
オーバーロード一覧

 

 


© 2002, GrapeCity inc. All rights reserved.