Klasyczny klient - serwer. Problem dotyczy wątków po stronie serwera.
Mam główny wątek akceptujący klientów i dla każdego klienta rozpoczyna się jego własny wątek (sesja) do komunikacji. Teraz mam taki problem, jeżeli aktualnie nie ma wymiany pomiędzy serwerem a klientem to wątek klienta oczekuje na pojawienie się jakichś danych. Najbardziej sensowne wydaje się wtedy uśpienie wątku (Sleep(Timeout.Infinite)).
Moje pytanie brzmi czy jest jakas możliwość żeby wątek sam się wybudził po pojawieniu się czegoś w gnieździe ?
Mógłbym stworzyć "trzeci" wątek który sprawdzałby gniazda klientów po kolei i jeżeli coś się na którymś pojawiło to budziłby jego wątek, ale taka nieskończona pętla (musiałaby działać tak długo jak długo działałby serwer i obciążałaby system) jakoś mi nie bardzo leży. Równie złym rozwiązaniem byłaby pętla w każdym wątku klienta sprawdzająca dostępność danych ( bez usypiania wątka).