C# AddOnPreRenderCompleteAsync异常处理

C# AddOnPreRenderCompleteAsync异常处理,c#,asp.net,asynchronous,exception-handling,C#,Asp.net,Asynchronous,Exception Handling,如何将错误消息显示到从BeginAsyncOperation返回的页面?页面加载优雅,没有数据,但用户不知道为什么?我验证了该错误是在BeginAsyncOperation中抛出的,但没有得到处理 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { AddOnPreRenderCompleteAsync( new BeginEventHandle

如何将错误消息显示到从BeginAsyncOperation返回的页面?页面加载优雅,没有数据,但用户不知道为什么?我验证了该错误是在BeginAsyncOperation中抛出的,但没有得到处理

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        AddOnPreRenderCompleteAsync(
            new BeginEventHandler(BeginAsyncOperation),
            new EndEventHandler(EndAsyncOperation)
        );
    }
}

private IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback callback, object state)
{
    var t = new ThreadStart(GetData);
    try
    {
        return t.BeginInvoke(callback, null);
    }
    catch (Exception ex)
    {
        this.lblError.Text = ex.Message; 
        this.pnlError.Visible = true;
    }
    return null;
}

private void EndAsyncOperation(IAsyncResult result)
{
    BindData();
    SetControlStates();
}

private void GetData()
{
    try
    {
        throw new Exception("something broke!");
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

我想得太多了

private IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback callback, object state)
{
    var t = new ThreadStart(GetData);
    return t.BeginInvoke(callback, null);
}

private void GetData()
{
    try
    {
        throw new Exception("something broke!");
    }
    catch (Exception ex)
    {
        this.lblError.Text = ex.Message; 
        this.pnlError.Visible = true;
    }
}