Trying to get a thread to change form controls in Windows Mobile.
Throws an unsupported exception.
Does this mean it cant be done at all?
If not, how do
You need to use the Control.InvokeRequired property as UI elements must be accessed from the main thread.
In your background thread you raise an event.
public event EventHandler MyApp_MyEvent;
this.MyApp_MyEvent(this, new MyEventArgs(MyArg));
In you main UI thread you subscribe to that event:
this.myThread.MyApp_MyEvent+= this.MyAppEventHandler;
and the handler itself:
private void MyApp_EventHandler(object sender, MyEventArgs e)
{
if (this.MyControl.InvokeRequired)
{
this.MyControl.Invoke((MethodInvoker)delegate { this.MyAction(e.MyArg); });
}
else
{
this.MyAction(e.MyArg);
}
}