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.

questionAnswers(2)

yourAnswerToTheQuestion