【发布时间】:2016-09-17 10:17:45
【问题描述】:
我想在一个线程中处理数据,同时保持对 UI 的控制。 在我的程序中,当我单击“连接”按钮时,客户端通过套接字连接到服务器,但同时我会启动一个线程,该线程不断等待来自服务器的消息。 我的代码大约是:
Thread ListenThread;
SocketClient socket = new SocketClient();
public MainWindow()
{
ListenThread = new Thread(Wait);
InitializeComponent();
socket.StartClient(PORT);
}
private void CONNECT_Click(object sender, RoutedEventArgs e)
{
socket.Connect();
UpdateUI();
ListenThread.Start();
}
private void Wait (){
while (socket.isConnected())
socket.WaitForSomething();
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
HandlePressure(e.Key);
}
问题是,当我启动 ListenThread 时,我无法使用 UI(我有一个文本框来收集我必须发送到服务器的命令)。
我该如何处理这种情况?
谢谢。
【问题讨论】:
标签: c# wpf multithreading user-interface