代码大致如下:
private void frmServerList_Load(object sender, System.EventArgs e)
{
FindServersDelegate del = new FindServersDelegate(FindServers);//声明委托.
del.BeginInvoke(null, null);//异步执行del委托
}
private delegate void FindServersDelegate();//定义委托
private void FindServers()//委托参数
{
string[] servers = Utils.SqlLocator.GetServers();
//BeginInvoke:在创建控件的基础句柄所在线程上,用指定的参数异步执行指定委托。servers 为 SetList方法所需要的参数
//To add each server to the list.
BeginInvoke(new SetListDelegate(SetList), new object[]{servers});
}
}
private delegate void SetListDelegate(string[] servers);
private void SetList(string[] servers)
{
foreach(string server in servers)
{
...
}
}
1,谁能帮我讲一下这些代码从窗口的Load事件开始的执行过程,尤其是委托和异步执行部分.我用调试的方法只跟踪不到详细执行过程.
2,异步执行到底是在什么时候才会执行呢?