2011-12-07 1 views
0

BeginAsyncOperation에서 반환 된 페이지에 오류 메시지를 표시하려면 어떻게합니까? 페이지는 데이터없이 정상적으로로드되지만 사용자는 그 이유를 알 수 없습니까? 오류가 발생했지만 BeginAsyncOperation에서 처리되지 않았 음을 확인했습니다.AddOnPreRenderCompleteAsync 예외 처리

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; 
    } 
} 

답변

0

나는 그것을 과장 생각했다.

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; 
    } 
}