나는 이미 시작된 작업을 취소 한 다음 새 작업으로 동일한 작업을 다시 시작하는 방법을 찾고 있습니다.작업 취소
아래에 작성한 샘플 코드가 있지만 작동하지 않습니다.
private CancellationTokenSource _cancellationTokenSource;
public public async Task DoSomething(string input)
{
_cancellationTokenSource.Cancel(true);
_cancellationTokenSource = new CancellationTokenSource();
try
{
Task.Run(async() =>
{
//Asynchronous method code here which uses input like database operations.
await doSomeDataBaseOperationAsync(input);
}, _cancellationTokenSource.Token);
}
catch { }
}
누군가 나를 도와 줄 수 있습니까?
취소는 수작업으로 이루어진 것입니다. 취소가 요청되었는지 확인하려면 토큰 상태를 확인하고 실제로 취소해야하는 작업을 수행해야합니다. – Kilazur
작동하지 않는 기능은 무엇입니까? 'DoSomething'을 호출하는 곳에서 간단하게'_cancellationTokenSource.Cancel (true);를 호출하면 작업을 취소 한 다음 다시 메서드를 호출 할 수 있습니다. 작동하지 않습니까? – RBT
'cancellationTokenSource.Cancel (true);'이 코드는 초기화 전에 작동합니까? –