不同的对象的BeginInvoke使用是完全不同的,有的是创建一个新线程,而有的是不创建新线程,只是调用UI线程异步执行。
创建新线程的用法例子:
public partial class C1
{
private delegate void ThreadDelegate();
public void BeginThread()
{
ThreadDelegate threader = ThreadMethod;
threader.BeginInvoke(null, null);
}
private void ThreadMethod()
{
// Do something.
}
}
不创建新线程,只是调用UI线程的异步执行的用法:
public partial class C1 :Widnow
{
public void UpdateUIMethod()
{
// Do something.
lb1.Text = "ok";
}
}
public class SomeClass
{
private delegate void UpdateDelegate();
public void SomeMethod()
{
//Do something;
UpdateDelegate d = mainWindow.UpdateUIMethod;
mainWindow.button1.BeginInvoke(d);
}
}