Есть примерно такой простой код:
SomeClass _someClassObject;
public async void UpMethod()
{
_someClassObject = new SomeClass();
// этот метод возвращает Task<SomeResultClass>
var task = _someClassObject.SomeMethodAsync(/*параметры*/);
var result = await task; // ждёмс...
var r1 = result.r1;
var r2 = result.r2;
}
Пользователь нажимает кнопочку и вызывается UpMethod()
он долгий... и даже несколько зависящий от действий пользователя.
И тут пользователь решает отменить действия которые выполняются внутри задачи. Он нажимет на кнопочку Отмена и вызывается метод Cancel()
public void Cancel(){
_someClassObject = null;// вот тут и вопрос
}
От этого действия задача отменится?
В официальном мануле по моему написано, что корректно отменять Task можно 2-мя путями:
Если бы его можно было отменить простым присвоением, то там бы так и написали.
А вообще, как вы себе это представляете? Откуда среда должна знать, как правильно выполнить завершение задачи, если вы сами об этом не позаботитесь? Если она тупо убьет задачу, то программа может остаться в непонятном состоянии, так как она могла работать с какими-то внешними данными.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написал приложение, которое мониторит папку, если файл есть, то копирует его в другую папку, но с нужным именемЭто в кратце
Как можно проверить,является ли определенный символ в строке числом? Не смог найти никакой рабочей информации, Parse не работает
Класс - это ссылочный тип, а если в нем есть значимые переменные, то под них память выделяется в куче, как под ссылочный (поправьте, если ошибаюсь)
Пишу клиент-сервер, где один клиент пишет в файл, а другие клиенты просматривают измененияХочу достичь чего-то вроде Google Document