Задать вопрос
kykyryky
@kykyryky

Как остановить выполнение асинхронной операции?

Есть обработчик клика по кнопке:

async private void button1_Click(object sender, EventArgs e)
{
    //LoadFromFile выполняется "долго"
    var file = await Task.Factory.StartNew(() => LoadFromFile(fileName));
}

Нужно прервать выполнение метода LoadFromFile, нажав , например, кнопку "Отменить загрузку". Как это можно сделать?
  • Вопрос задан
  • 1445 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 2
@carbon88
.NET developer/ORM developer
берете, создаете CancellationTokenSource, далее из него берете токен. его можно передать в таск. но сам токен не остановит выполнение таска. он так сказать пробрасывает информацию о том что была запрошена отмена операции внутрь таска. далее вы в своем коде можете проверить отменили ли задачу и прекратить ее исполнение. на кнопку отмены загрузки нужно повесить вызов CancellationTokenSource.Cancel() но именно того сорца что вы создали раньше для токена переданного в загрузку файла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы