Я хочу обрабатывать данные в потоке и в то же время поддерживать контроль над пользовательским интерфейсом. В моей программе, когда я нажимаю кнопку «Подключиться», клиент подключается к серверу через сокет, но в то же время я бы начал поток, который постоянно ждет сообщения с сервера. Мой код approxymately:Многопоточность в приложении WPF
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
, я не могу использовать пользовательский интерфейс (у меня есть текстовое поле, который собирает команды, которые я должен отправить на сервер). Как я могу справиться с этой ситуацией? Спасибо.
Это не ответ. Вам нужно получить 50 очков репутации и опубликовать это как комментарий. Вы должны удалить это. – Enigmativity