I am new to C# and have a question want to ask you. Question about "parallell update a variable"
My code below:
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
// ---------------------------
Thread tTrue = new Thread(new ThreadStart(TrueThread));
tTrue.Start();
Thread tFalse = new Thread(new ThreadStart(FalseThread));
tFalse.Start();
}
bool Start = false;
bool value;
void TrueThread()
{
while (true)
{
if (Start == true)
{
value = true;
break;
}
}
}
void FalseThread()
{
while (true)
{
if (Start == true)
{
value = false;
break;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(value.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
Start = true;
}
Code explain: First, when my application startup -> call TrueThread and FalseThread When TrueThread and FalseThread start, they will check for "Start" value, when Start variable become "true" (false by default, will be set to true when I click button2), TrueThread will set "value" varibale to true and FalseThread will set "value" variable to false.
But I confused, which thread will be run first ? and final value of "value" will be true or false ? and why ?
Click button1 to see the result