Can anybody tell me how if and else statements are related in this function. I am displaying text from another thread to GUI thread. What's the order or way of execution. Is the else statement necessary?
delegate void SetTextCallback(string text);
private void SetText(string text)
{
// InvokeRequired required compares the thread ID of the
// calling thread to the thread ID of the creating thread.
// If these threads are different, it returns true.
if (this.textBox7.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox7.Text = text;
}
}
Invoke.this.Invoke calls SetText with the given parameter again. Also check thiselse block we are sure text is set thread safelyInvokeRequired is used to check whether the statements are executed in the main UI thread or in an other thread than UI thread.
If the statements are being executed in an other thread than UI thread, Invoke is used to not to cause any CrossThread exception.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With