0

テキストの長さをバッファーとして取得するイベント onchange を持つテキスト ボックスがあります。私が呼び出したコールバック関数内で、MessageCallbackこのバッファをパラメータとして送信したいと考えています。ただし、別のスレッドで呼び出されているメソッド内でパラメーターが渡されるため、バッファーのプロパティは使用できません。どうすればこれを回避できますか?

私がやろうとしていることを想像するために、ここに私のコードのスニペットがあります:

    private int buflen = 1500;
    private int Buflen
    {
        get { return this.buflen; }
        set { this.buflen = value; }
    }


    private void MessageCallBack(IAsyncResult ar)
    {
        //this.Buflen = textMessage.Text.ToString().Length;
        //MessageBox.Show(this.buflen.ToString());
        try
        {
            this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new ThreadStart(() =>
                {
                    EndPoint epRemote = new IPEndPoint(IPAddress.Parse(textRemoteIp.Text), Convert.ToInt32(textRemotePort.Text));
                    MessageBox.Show(this.Buflen.ToString()); // returns 0 ?
                    int size = sck.EndReceiveFrom(ar, ref epRemote);

...

    private void textMessage_TextChanged_1(object sender, TextChangedEventArgs e)
    {
        this.Buflen = textMessage.Text.Length;
        MessageBox.Show(Buflen.ToString());
    }

だから私が求めているのはBuflen、新しく作成されたスレッド内でプロパティを表示する方法です?

4

1 に答える 1

-1
  1. プロパティを同期させる
  2. プロパティを公開する
于 2013-09-30T08:56:11.950 に答える