C#委託時寫多個委託事件,是不是只執行第一個??
public delegate void AsyncUseMKChangeEventHandler(string a, string b, string c);
public string A()
{
AsyncUseMKChangeEventHandlerasy = new AsyncUseMKChangeEventHandler(B);
asy.BeginInvoke(a1, b1, c1, null, null);
AsyncUseMKChangeEventHandlerasy = new AsyncUseMKChangeEventHandler(B);
asy.BeginInvoke(a2, b2, c2, null, null);
}
public void B(string p_a,string p_b,string p_c)
{
}
在委託的時候,這麼寫是不是第二個可能不執行???
--------------------编程问答-------------------- 应该都执行的,试试呗 --------------------编程问答-------------------- 都执行的 --------------------编程问答-------------------- 全部执行的,而且好像是并发执行. --------------------编程问答--------------------
--------------------编程问答--------------------
AsyncUseMKChangeEventHandler asy = new AsyncUseMKChangeEventHandler(B)//声明了两次,编译就不通过啊,如果去掉第二个的话可以正常执行.
public delegate void AsyncUseMKChangeEventHandler(string a, string b, string c);
public string A()
{
AsyncUseMKChangeEventHandler asy = new AsyncUseMKChangeEventHandler(B);
asy.BeginInvoke(a1, b1, c1, null, null);
AsyncUseMKChangeEventHandler asy1 = new AsyncUseMKChangeEventHandler(B);
asy1.BeginInvoke(a2, b2, c2, null, null);
}
public void B(string p_a,string p_b,string p_c)
{
}
不好意思 在这里手打的,没编译过
在系统上执行的时候第二个理论上应该会修改资料的,但是资料根本没有改变。
如果我是下面的写法就OK。
public delegate void AsyncUseMKChangeEventHandler();
public string A()
{
AsyncUseMKChangeEventHandler asy = new AsyncUseMKChangeEventHandler(C);
asy.BeginInvoke(null, null);
}
public void B(string p_a,string p_b,string p_c)
{
}
public void C(string p_a,string p_b,string p_c)
{
B(a1,b1,c1);
B(a2,b2,c2);
}
求解释。。 --------------------编程问答-------------------- 请无视我那个C的参数吧,忘了去掉。 --------------------编程问答-------------------- 不知道,不过还是来顶一下 --------------------编程问答-------------------- 应该顺序执行每个东西的吧。。。。。。。 --------------------编程问答-------------------- BeginInvoke启动异步调用,
http://msdn.microsoft.com/zh-cn/library/2e08f6yc(v=VS.80).aspx --------------------编程问答-------------------- 全部执行!
补充:.NET技术 , C#