Async 메서드의 경우 try~catch의 위치를 어디에 놓는게 기본인지요?
1안과 2안중
// 예제1
private void button1_Click(object sender, EventArgs e)
{
     1안)
     try{
          Run();  //UI Thread에서 실행
     }catch(Exception ex){
     }
     
}
private async void Run()
{
    // 비동기로 Worker Thread에서 도는 task1
    // Task.Run(): .NET Framework 4.5+
    var task1 = Task.Run(() => LongCalcAsync(10));
   <2안>
    try{
      // task1이 끝나길 기다렸다가 끝나면 결과치를 sum에 할당
      int sum = await task1;
       // UI Thread 에서 실행   // Control.Invoke 혹은 Control.BeginInvok 필요없음
        this.label1.Text = "Sum = " + sum;
    }catch(Exception Ex){
    }
    
   
}
private int LongCalcAsync(int times)
{
    int result = 0;
    for (int i = 0; i < times; i++)
    {
        result += i;
        Thread.Sleep(1000); 
    }
    return result;
}
        
        
                    
                    
                    
                    
                    
    
                    
                    
                    
                    
                    
                
                    [최초 등록일: ]
                    [최종 수정일: 4/24/2023]