To those who are familiar with the WinForm InvokeRequired, this is will return a boolean true if a UI is being access on a different thread.
the Equivalent WPF for this is:
Declare a delegate function.
protected delegate void Invoker(string message);
and the actual method that does the UI Update
public void UpdateUI(string message)
{
if (this.richTextBox1.Dispatcher.CheckAccess())
{
this.richTextBox1.AppendText(string.Format("{0}: {1}\r", DateTime.Now, message.Message));
}
else
{
this.richTextBox1.Dispatcher.Invoke(new Invoker(UpdateUI), message);
}
}
basically you will just call the UpdateUI on the event handler method.
protected void StateChange(object sender, StateChangeArgs args)
{
UpdateUI(args.Message);
}
Which is quite simple