A调用一个方法B,B在执行的过程中需要返回一个值给A,然后继续执行下面的代码这时候好象不能用A创建委托来实现B执行过程中返回值啊?该怎么办呢

解决方案 »

  1.   

    或者换个说法,是A创建一个对象C,如何传递对象C给B,然后让B在执行过程中调用C,再让A获取到C的返回值
      

  2.   

    PS:B的参数个数已经是固定的,不能通过传参方式
      

  3.   

    标志bool done = false;
    public void A()
    {
        done = false;
        new Thread((ThreadStart)delegate
        {
            B();
        }).Start();
        while(!done) Application.DoEvents();
        //B某时刻后,确定的代码,后续执行
    }
    public void B()
    {
        //..代码
        done = true;
        //后续代码
    }
      

  4.   

    写个事件就是A 创建对象 C 的时候生成一个事件 Event1, B 订阅 Event1。然后 B 的处理结束了,再生成一个事件 Event2, A 再订阅一下就是。
      

  5.   

    public delegate void test(string name);  
    void A(string name)  
    {
      Response.Write(name);//属性被更改
    }public string NAME  
      {//属性 可读写  
      get  
      {  
      return name;  
      }  
      set  
      {  
      name = value;  
      A(value);//当此属性发生变化时候报警 并且把值传递过去
      }  
      }  

    Thread th = new Thread(new ParameterizedThreadStart(method));
    th.Start("参数"));
    private void method(string s)
    {}
    public Thread(
      ParameterizedThreadStart start
    )
    public delegate void ParameterizedThreadStart(
      Object obj
    )