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)
{}在委託的時候,這麼寫是不是第二個可能不執行???

解决方案 »

  1.   


    AsyncUseMKChangeEventHandler asy = new AsyncUseMKChangeEventHandler(B)//声明了两次,编译就不通过啊,如果去掉第二个的话可以正常执行.
      

  2.   


    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);
    }
    求解释。。
      

  3.   

    BeginInvoke启动异步调用,http://msdn.microsoft.com/zh-cn/library/2e08f6yc(v=VS.80).aspx