내부적으로 API를 노출하려는 경우 사용자가 취소 할 수있는 작업 시퀀스를 예약합니다. 예 :취소 가능한 작업 API를 노출하는 올바른 방법
public ??? DoWork()
{
Task t = new .... , myCancellationToken);
return ???
}
취소 제어를 위해 반환 할 올바른 개체는 무엇입니까? CancellationTokenSource입니까?
public CancellationTokenSource DoWork()
{
CancellationTokenSource source = new ....
Task t = new .... , source.Token);
return source;
}
전혀 반환해야합니까? CancellationToken을 arg로 받아 들여 필요한 경우 사용자가 토큰 소스를 만들도록해야합니까?
public void DoWork(CancellationToken token)
{
Task t = new .... , token);
}
이 문제를 해결하는 가장 관용적 인 방법은 무엇입니까?
이제는 이것이 정말로 과부하로 쓰여지는지 궁금 해서요, 아니면 선택적인'CancellationToken? '매개 변수의 기본값이'null'인지 궁금합니다. –
나 자신에게 대답하기 위해서 : 나는 개인적인 취향의 문제라고 생각하고있다. –
@StevenLiekens .Net 자체는 선택적 매개 변수가 아닌 오버로드를 사용합니다. 그 팁은 과부하에 찬성하여 비늘을 조금칩니다. – i3arnon