Control的invoke和BeginInvoke与委托的Invoke和BeginIvoke不同,就是有两种方式,一种是control,一种使用委托
代码
新建一个winform窗体工程,在项目-属性-应用程序-输出类型改为控制台应用程序
using System;
using System.Threading;
using System.Windows.Forms;
private delegate void InvokeDelegate();
private void Invokemethod();
{//代码片段C
Console.WriteLine("这是c代码片段,当前线程是{0}", Thread.CurrentThread.ManagedThreadId);
}
private void button1_click(Object sender,EvenetAregs e)
{
//代码片段A
Console.WriteLine("这是a代码片段,当前线程是{0}", Thread.CurrentThread.ManagedThreadId);
this.invoke(new InvokeDelegate(Invokemethod)《此处可以增加参数如:,new Object[]{"参数1","参数2"}》)
Console.WriteLine("这是B代码片段,当前线程是{0}", Thread.CurrentThread.ManagedThreadId);
//代码片段B
}
执行顺序为A=>C=>B
将this.invoke改成this.BeginInvoke顺序就是:A=>B=>C
以上代码改成Action封装
using System;
us