Re: Кооперативная отмена
От: Qbit86 Кипр
Дата: 18.06.14 12:20
Оценка:
Здравствуйте, sraider, Вы писали:

S>Существуют ли библиотеки для удобного программирования асинхронных вызовов?


S>а) Может нажать "Отмена". Приложение все еще выполняется, но задачу уже можно прекращать.

S>б) Может вообще закрыть приложение. Работу приложения нужно завершить.

S>То есть выполнение всей задачи нужно уметь прерывать.

S>Предполагается, что у всех "долгих" функций есть еще и асинхронный интерфейс, который может уведомлять когда работа функции завершена, и также есть возможность послать асинхронно выполняющейся функции сигнал "прекратить работу".

Для этого используется механизм кооперативной отмены. То есть работа прерывается не в одностороннем порядке вызывающей стороной; вызываемая сторона должна «согласиться» прерваться. Посмотри в MSDN реализацию и примеры использования .NET-классов CancellationToken и CancellationTokenSource, и сделай по аналогии в C++. Но для этого асинхронный API должен поддерживать вызовы с передачей токена отмены, и его опрос.
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.