0

작업을 취소 된 상태로 두려면 취소 할 때 작업이 항상 OperationCanceledException이되어야합니다. 그렇지 않으면 작업 계속 기능이 작동하지 않습니다.항상 OperationCanceledException을 throw하는 모범 사례?

그런데 플래그가 CancellationToken인지 확인하고 침묵의 죽음을 맞이하는 예제가 인터넷에서 많이 발견되는 이유는 무엇입니까?

에 모범 사례는 항상 OperationCancelledException을 던져 또는 그냥 IsCancellationRequested 플래그를 확인 OperationCancelledException을 던지는없이 작업을 종료 할 특별한 경우에 합법적인가?

답변

3

CancellationToken structThrowIfCancellationRequested method으로 전화하는 것이 좋습니다. 취소 요청이 있었음을 알리는 메시지가 나타나면 OperationCanceledException을 던져 취소 요청이 내려졌습니다.

+0

감사합니다. Paulo. 그건 요점이 아니에요, 어떻게하는지 압니다. 문제는 OperationCancelledException이 규칙에 예외없이 항상 던져 지거나, 예를 들어 플래그를 검사하고 예외를 던지지 않는 경우 프로그램을 종료하는 것은 합법적입니다. –

+1

그러면 호출 코드가 작업이 취소되지 않았다고 생각합니다. 그렇지 않니? –