Я создаю API для поддержки экспорта и прерывания работы. Например,Дизайн Api для экспорта и отмены экспорта
class Export
{
//starts an export operation.
void Start();
//aborts an export operation
void Abort();
}
Клиенты могут быть приложениями Gui или non-Gui. Операция «Пуск» может занять некоторое время, чтобы выполнить свою работу, и между пользователями можно вызвать прерывание. Итак, как может api выглядеть как i.e вернуть значение этих методов? Должна ли начальная реализация нужна операция, которая должна быть запущена в новом потоке и немедленно возвращена или должна быть синхронной?
Подсказка: операция начала будет выполнять n заданий, и если задание (x, где x < n) запускается, то вызов прерывания должен ждать (не уверен, что здесь здесь хорошо, здесь также обсуждается) до xth job завершается и не следует начинать с x + 1-й операции.
Следовательно, когда абонент вызывается, должен ли он немедленно вернуться или как он должен быть?
Прямо сейчас, как я сделал это,
Start -> синхронными. Когда вызывается прерывание, он будет ждать, пока запуск не завершится с текущей операцией, а затем вернется, а затем метод отмены будет возвращен. Но почему-то я чувствую, что то, что я делаю, ошибочно.
Любая помощь приветствуется, спасибо заранее.
Примечание: Я также подумал о том, чтобы оба метода были асинхронными и уведомляли клиентов о завершении событиями, в которых «Начало завершено», «Аборт завершен».
Полезно знать о различных асинхронных шаблонах, спасибо :) – srsyogesh
Если мне нужно иметь только экспорт и отмену, то он (TAP) будет лучшим подходом, но если я захочу расширить этот интерфейс с помощью Pause и продолжить работа. Вы все еще чувствуете, что у нас может быть расширение с помощью TAP? – srsyogesh