Je suis novice en multithreading et j'ai une question (probablement) simple sur l'utilisation simultanée de threads et de wait/async. J'ai une méthode qui lit un flux TCP, puis traite la réponse reçue. Il est appelé d'une manière montré ci-dessous:Est-il viable d'utiliser simultanément wait/async et threads sur une méthode?
ThreadStart ts = new ThreadStart(ReadTCP);
Thread tt = new Thread(ts);
Est-il viable de lire les données du flux de façon asynchrone? Comme dans ce code:
private async void ReadTCP()
{
string responseData = string.Empty;
if(streamTCP.DataAvailable)
{
responseData = await readerTCP.ReadToEndAsync();
// some code handling the response
}
}
code édité avec MarioDS's help
Je ne pense pas que votre streamTCP soit thread-safe. Ce code échouera d'une manière ou d'une autre. –
Je ne l'ai pas encore verrouillé, mais je sais comment le faire. –
Le verrouillage peut simplement annuler tout thread que vous essayez de faire. –