Hi I\'m developing a .Net application and I want to achieve the following:
I have a winforms application, and a timer (System.Timers.timer) that excecutes a thread b
Let's say that your worker method (that you execute in a thread) is
DoWork(args)
{
...
UpdateUI();
}
The method that handles timer's Elapsed event should do this:
OnTimerElapsed(object sender, ElapsedEventArgs e)
{
args = GetArgs();
this.BeginInvoke(() => DoWork(args));
// 'this' refers to form here.
// You can also use BeginInvoke on a user control for updating it.
}
This will run DoWork in a seperate thread and DoWork will have the ability of updating UI.
formObject.Invoke(delegate {
// action to perform on UI thread
});