Microsoft MVP성태의 닷넷 이야기
Async 메서드와 try~catch [링크 복사], [링크+제목 복사],
조회: 9596
글쓴 사람
guest
홈페이지
첨부 파일
 

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]


비밀번호

댓글 작성자
 



2023-04-24 04시12분
둘 간의 차이점이 있던가요?
정성태

[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5959vict...2/10/2025376비주얼 스투디오 CLR 코드 탑색 질문입니다. [1]
5958Supe...1/18/20251008C#으로 DLL을 만들때 WebVeiw2을 이용하여 Vb6에서 사용할수 있는지 문의드립니다. [2]
5956fc1/11/20251368한국투자증권 KIS Developers OpenAPI의 C# 래퍼 버전 - eFriendOpenAPI NuGet 패키지 [1]
5955tree...11/8/20243039C#12 책 179 페이지 문의 사항 [2]
5954SunN...10/10/20243442textbox에서 글자입력후 textBox1_KeyUp함수에서listBox1_SelectedIndexChanged 강제호출방법 [1]
5953Roya10/4/20243270c# com host dll을 c++에서 사용할 때, sdk 관련 runtime 을 설치 안하고 제공할수 있을까요?? [1]
5952우광현9/5/20244393서버용 소켓 포트 동적포트 적용시 클라이언트가 호출하는 방법? [2]
5951Kun ...8/21/20244111c++에서 복합데이터 Struct를 .NET Framework에서 구현할 수 있는 방법이 있을까요? [2]
5950SunN...8/18/20244478정석대로 한다면 response.Close() 해야되는지요? [4]
5949SunN...8/16/20244704SqlConnection Open()에서 에러가나면 Close()하는 시점 [3]
5948SunN...8/14/20244713WebRequestMethods.Ftp.MakeDirectory 해제 [3]
5947Roya8/7/20245437c# dll을 cpp lib에서 사용을 할려고 하는데요. CoCreateInstance 에서 지정된 파일을 찾을수 없다고 나오는대요. [4]
5946SunN...8/5/20245429TaskDefinition 에서 사용저가로그온상관없이실행 [3]파일 다운로드1
5945SunN...8/3/20245298윈도우 작업스케줄러 [1]
5944roya8/1/20245144C# dll을 C++ 프로젝트에서 사용을 하고 싶은데, 레지스트리 등록 없이 가능한걸까요?? [2]
5943SunN...8/1/20245038윈도우C#에서 리눅스FTP로 업로드 및 리눅스에 폴더생성(WindowsOS에서C#으로) [3]
5942vict...7/24/20245282dll 을 c#에서 쓰고 싶습니다 [1]
5941vict...7/17/20246386DependencyObject와 같은 스레드에서 DependencySource를 만들어야 합니다. 오류 [2]
5940ckm7/16/20246732선생님 안녕하세요 async await 교착 관련 질문입니다 [1]
5939괴물신인7/9/20246327템플릿 대체할수있는방법이 있을까요? [6]
5938씨제바보7/5/20245470책 질문드립니다. [1]
5937Thor... donator5/27/20246600C# 12 는 전자책이 언제쯤 나오게 될까요? [1]
5936ds4/26/20247610활성화 되어 있는 커뮤니티 발견하게 되어 기분이 좋습니다. 자주 놀러 올께요. (내용 없습니다. [2]
5935양승조 donator4/25/20248104Reflection 관련 질문 드립니다. [5]파일 다운로드1
5934양승조 donator4/24/20246520Reflection 관련 질문 드립니다. [1]
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...