请问,这里的返回值该怎么写?
    IAsyncResult BeginAsyncOperation(object sender, EventArgs e,AsyncCallback cb, object state)
    {
        return ?;
    }

解决方案 »

  1.   


    ....你应该把谁调用的传进来 object.BeginInvoke(,,object)
    然后一般如果有返回值直接调用
    object = (你的类型)state;
    object.EndInvoke();直接得到返回值
      

  2.   

    如果我没记错.msdn上有个示例告诉你怎么用state这个参数的
      

  3.   

    不是很明白,我在网上看到有个例子:    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                AddOnPreRenderCompleteAsync(
                    new BeginEventHandler(BeginAsyncOperation),
                    new EndEventHandler(EndAsyncOperation)
                );
            }
        }
        IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback cb, object state)
        {
            string connection = @"Data Source=。;Initial Catalog=XXX;User ID=sa;Password=SQL2005;Asynchronous Processing =true";
            _connection = new SqlConnection(connection);
            _connection.Open();
            _command = new SqlCommand("select top 10 VCOMPANY_ID,VCOMPANY_NAME from ZW_COMPANY", _connection);
            return _command.BeginExecuteReader(cb, state);    }    public void EndAsyncOperation(IAsyncResult ar)
        {
            _reader = _command.EndExecuteReader(ar);
        }
    不太明白BeginAsyncOperation这里什么意思,麻烦楼上的能个连接吗,想学习一下。
      

  4.   

    http://www.microsoft.com/china/msdn/library/webservices/asp.net/issuesWickedCodetoc.mspx?mfr=trueASP.NET 2.0 中的异步页
    ASP.NET 2.0 极大地简化了生成异步页的方式。首先使用该页的 @ Page 指令引入 Async=“true” 属性,如下所示: 在后台,这会通知 ASP.NET 在该页中实现 IhttpAsyncHandler。接下来,您在该页生存期的早期(例如,在 Page_Load 时)调用新的 Page.AddOnPreRenderCompleteAsync 方法来注册一个 Begin 方法和一个 End 方法,如以下代码所示: AddOnPreRenderCompleteAsync (
        new BeginEventHandler(MyBeginMethod),
        new EndEventHandler (MyEndMethod)
    );接下来的操作比较有趣。该页经历其常规处理生命周期,直到 PreRender 事件刚刚引发之后。然后,ASP.NET 调用使用 AddOnPreRenderCompleteAsync 注册的 Begin 方法。Begin 方法的任务是启动诸如数据库查询或 Web 服务调用的异步操作,并立即返回。此时,分配给该请求的线程返回到线程池。此外,Begin 方法返回 IAsyncResult,它允许 ASP.NET 确定异步操作完成的时间,这个时候 ASP.NET 从线程池提取线程并调用 End 方法。当 End 返回之后,ASP.NET 执行该页生命周期其余的部分,包括呈现阶段。在 Begin 返回以及调用 End 之间,该请求处理线程可以自由地服务于其他请求,直至调用 End 且延迟呈现为止。由于 2.0 版的 .NET Framework 提供多种执行异步操作的方式,因此,您甚至无需实现 IasyncResult。反之,Framework 替您实现。