Je souhaite traiter des données dans un thread et, en même temps, conserver le contrôle sur l'interface utilisateur. Dans mon programme, lorsque je clique sur un bouton "Connect", le client est connecté à un serveur via une socket, mais en même temps je voudrais démarrer un thread qui attend en permanence un message du serveur. Mon code est approxymately:Multithreading dans l'application 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);
}
Le problème est que, quand je commence ListenThread
, je ne peux pas utiliser l'interface utilisateur (j'ai une zone de texte qui recueille des commandes que je dois envoyer au serveur). Comment puis-je gérer cette situation? Merci.
Ceci n'est pas une réponse. Vous devez obtenir vos 50 points de repêchage et poster ceci comme commentaire. Vous devriez supprimer ceci. – Enigmativity