У меня есть контроллер, где я создаю токен отмены в конструкторе и использую его в долго выполняющейся задаче ожидания(). Приводит ли удаление маркера отмены в Controller.Dispose() к отмене длительной задачи?
public class SomeController : BaseInternalController
{
private CancellationTokenSource cancellationTokenSource;
public MyController()
{
cancellationTokenSource = new CancellationTokenSource();
}
public async Task<HttpResponseMessage> Post(SomeData data)
{
foreach (var item in data)
{
await longRunningTask(item, cancellationTokenSource.token);
}
}
protected override void Dispose(bool disposing)
{
if (cancellationTokenSource != null)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}
base.Dispose(disposing);
}
}
Post
, не завершится, то есть после завершенияlongRunningTask
. - person Stephen Cleary   schedule 20.05.2017