C# 비동기 사용 취소 시.. 왜 굳이 CancellationToken을 사용할까요?

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 9

  • @태사단
    @태사단 2 месяца назад

    bool 변수같은걸 직접 만들어 제어해도 되지만, 프로그래머들이 Task 취소 방식을 통일성 있게 사용하게 해 주고 몇가지 유틸리티 기능들도 들어 있는 것이라고 보면 되겠군요.
    그냥 써야되나보다 하고 별 생각없이 쓰고 있었는데 많은 생각이 들게 하네요. 좋은 영상 감사합니다.

  • @번개생쥐
    @번개생쥐 Год назад +1

    클론코딩 했는데요.
    private void SetProgress(ProgressBar progressBar, Label label, int count)
    {
    if (this.InvokeRequired)
    {
    this.BeginInvoke(SetProgress, progressBar, label, count);
    }
    에서 this.BeginInvoke의 첫번째 인자가 오류가 납니다. CS1503: '메서드 그룹'에서 'Delegate'(으)로 변환할 수 없습니다.

    • @kaburi-coder
      @kaburi-coder  Год назад +1

      무명 델리게이트와 메서드 간 호환성 .NET6.0부터 보완이 되었습니다.
      프레임워크가 해당 버전 미만의 버전이라면 델리게이트를 직접 구현해주셔야 합니다.
      private void SetProgress(ProgressBar progressBar, Label label, int count)
      {
      if (this.InvokeRequired)
      {
      this.BeginInvoke(new Action(()=> SetProgress(progressBar, label, count)));
      }
      }

  • @User_Masuri
    @User_Masuri 8 месяцев назад

    좋은 영상 잘 보고갑니다!

  • @리뷰추천-b1j
    @리뷰추천-b1j Год назад +1

    제가 너무 찾던 강의입니다. 혹시 task.whenAll 을 통해 여러 스레드를 병렬로 실행하고 있을때, 특정 task 에서 cancel( ) 이 일어나면 다른 모든 task 를 종료 시킬 수 있는 방법이 있을까요?
    다른 곳들 예제는 모두 취소 버튼 (외부 이벤트)로만 cancel( ) 을 호출시켜 종료하고 있어서요!
    winform 이 아닌 web api 작업입니다!

    • @kaburi-coder
      @kaburi-coder  Год назад +2

      긍정적인 답글 감사합니다 ^^
      안타깝게도 Task Cancel을 사용해서 다른 Task를 종료 시킬 순 없습니다. ㅠㅠ
      만약 구현을 하고자 하신다면 별도 클래스를 만드시고 클래스 안에 태스크들을 등록하고 클래스에 CancelAll() 과 같은 메서드를 구현하심이 어떨까요~?
      감사합니다 ^^

  • @번개생쥐
    @번개생쥐 Год назад

    감사합니다. 전 직장에서 CancellationToken을 썻는데... 이유로 몰랐었거든요.

    • @kaburi-coder
      @kaburi-coder  Год назад

      시청해주셔서 감사합니다~ ^^

  • @원종찬-f2y
    @원종찬-f2y Год назад

    안녕하세요 혹시 소스코드 볼 수있을까요?