我对多线程,甚至 Socket 编程都很陌生,但请耐心等待:目前我正在使用 Socket.BeginReceive 从另一台计算机接收消息,并且接收良好。
然而,我想要使用收到的信息做的关键事情是更新 UI。(或者更确切地说是绑定到 UI 的数据)但是,如果我尝试这样做,程序会崩溃,我希望这是因为 AsyncCallback 委托在单独的线程上运行。从另一个线程访问主窗口变量(我正在使用 WPF)的标准过程是什么?我已经阅读了有关使用 BeginInvoke() 的模糊内容,但我根本无法访问主窗口,所以我不明白如何在这里使用调用。
谢谢你的帮助!
相关代码是这样的:
Listener.BeginReceive(Recieved, 0, Recieved.Length, SocketFlags.None, new AsyncCallback(OnReceive), null);
private void OnReceive(IAsyncResult ar)
{
TextBox_1.Text = "";
}