_OnStateChanged
方法在另一个线程中执行,然后是MainWindow
的实例? 还有另一种方法可以在不必使用代理的情况下调用myRichTextBox.AppendText()
吗?
public partial class MainWindow : Window {
private static PureSocketClusterSocket _socket
//[...]
public MainWindow() {
//[...]
Debug.WriteLine("MainWindow() thread Id: {0}", Thread.CurrentThread.ManagedThreadId);
_socket = new PureSocketClusterSocket(...);
_socket += _OnStateChanged;
//[...]
}
private void _OnStateChanged(WebSocketState newState, WebSocketState prevState) {
Debug.WriteLine("_OnStateChanged() Thread Id: {0}", Thread.CurrentThread.ManagedThreadId);
myRichTextBox.AppendText(...);
}
}
答案 0 :(得分:0)
ClientWebSocket将异步引发事件(在池中的线程上),因此开发人员可以决定应该处理结果的线程。阻止UI线程等待来自网络的响应是一个坏主意,因为它将锁定UI