Um valor de um segmento que influencia o caminho de outro segmento
Eu tenho um programa que usa dois threads de cliente e um servidor. Há um ponto no meu programa em que desejo um valor em um thread para influenciar o caminho de outro thread.
Mais especificamente, eu tenho esse código no servidor:
class Handler
{
public void clientInteraction(Socket connection, bool isFirstThread, Barrier barrier)
{
string pAnswer = string.Empty;
string endGameTrigger = string.Empty;
//setup streamReaders and streamWriters
while(true) //infinite game loop
{
//read in a question and send to both threads.
pAnswer = sr.ReadLine();
Console.WriteLine(pAnswer);
awardPoints();
writeToConsole("Press ENTER to ask another question or enter 0 to end the game", isFirstThread);
if(isFirstThread == true)
{
endGameTrigger = Console.ReadLine(); //this is only assigning to one thread...
}
barrier.SignalAndWait();
if(endGameTrigger == "0")//...meaning this is never satisfied in one thread
{
endGame();
}
}
}
}
O valor booleanoisFirstThread
é um valor configurado no construtor do encadeamento ao qual posso detectar qual encadeamento foi conectado primeiro.
Existe alguma maneira, ou talvez um método de encadeamento, que permita que o segundo thread conectado detecte que oendGameTrigger
no primeiro segmento foi definido e, portanto, os dois segmentos executam oendGame()
método corretamente.