我有一个带有事件 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
在新创建的线程中可见?