Асинхронные вызовы
От: sraider http://dvinogradov.blogspot.com
Дата: 18.06.14 11:51
Оценка:
Существуют ли библиотеки для удобного программирования асинхронных вызовов?

Поясню задачу.
Допустим, есть GUI, где пользователь запускает задачу. Задача может выглядеть так:

some_quick_code1;
Load("http://url"); // has async interface too, can be used asynchronously
some_quick_code2;
ReadFromDataBase("select * from db"); // has async interface too, can be used asynchronously
some_quick_code3;
ComputeLargeData(); // has async interface too, can be used asynchronously
some_quick_code4;
WriteToDisk("out.txt"); // has async interface too, can be used asynchronously
some_quick_code5;


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

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

Соответственно вопрос, как оформить приведенный выше код в асинхронном стиле?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.