UIthread-Invoke vom Backgroundworker aus um Cross-Thread-Exceptions zu vermeiden.
using System;
using System.Windows.Forms;
namespace UIThreadInvokeExample
{
public static class UIThreadInvokeClass
{
static public void UIThread(this Control control, Action code)
{
if (control.InvokeRequired)
{
control.BeginInvoke(code);
return;
}
code.Invoke();
}
static public void UIThreadInvoke(this Control control, Action code)
{
if (control.InvokeRequired)
{
control.Invoke(code);
return;
}
code.Invoke();
}
}
}
//Benutzen
using UIThreadInvokeExample;
this.UIThreadInvoke(() =>
{
//You GUI code here
});
Kommentare zum Snippet