Is it good idea to use "Control.CheckForIllegalCrossThreadCalls = false"
Solution 1
While it may appear to work most of the time, it is sure to fail every now and then.
If you need to access/modify the UI control from another thread, use Control.Invoke.
Solution 2
Not a good idea to do that.
I believe the preferred method is to check to see if Control.InvokeRequired == true, and if so then use Control.Invoke with the proper delegate, which will marshall the method call onto the UI thread.
Solution 3
Will you write something like below
try
{
Object obj=null;
var result = obj.ToString();
}
catch (Exception )
{
}
I am sure your answer would be NO , similar thing is with Control.CheckForIllegalCrossThreadCalls = false, it will just eating exception but present unknown results to your estimated clients
Liban
I am a telecom engineer. i m interested in signal processing.
Updated on June 04, 2022Comments
-
Liban almost 2 years
I have a class that receives data from serialport. i used
action<T> delegate
to pass data to the form where it is displayed in a textbox. the thing is i could not access thetextbox
control, becouse it says:Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on
.so i set
Control.CheckForIllegalCrossThreadCalls = false
, and it is working.is it good idea to do that? or there is a better way of doing it.
Thanks