kykyryky
@kykyryky

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы