0

CancellationToken에 대해 구성된 지연을 메시지에 추가하려고하기 때문에 이 발생하면 어떤 내부 프레임 워크 코드를 작성하고 어느 시점에 MyCustomException을 던지고 싶습니다. 즉,취소 지연 가져 오기

var cancellationTokenSource = new CancellationTokenSource(); 
cancellationTokenSource.CancelAfter(cancellationTokenDelay); 
return cancellationTokenSource.Token; 

CancelAfter 메서드에 전달 된 값을 가져오고 싶습니다. 문제는 : CancellationToken이이 정보를 노출하지 않는 것 같습니다. 그것을 얻기위한 트릭이 있습니까?

(나는 이미 동작을 Stopwatch으로 타이밍을 잡는 것으로 생각했지만, 좀 더 우아한 대안을 찾고 있습니다).

답변

2

모두 CancellationToken의 지연이 없습니다. 설정된 시간이 경과하지 않은 것을 기준으로 취소를 호출하는 CancellationTokenSource과 함께 사용하는 것이 일반적입니다.

취소 토큰을 사용하여 해당 정보를 작업에 전달하거나 지연과 함께 사용되며 해당 정보를 공개적으로 사용하는 CancellationToken의 자체 서브 클래스를 만들어야합니다.

+1

'CancellationToken'은'struct'이므로 서브 클래스로 만들 수 없습니다. – svick

관련 문제