По памяти,
SysOperationSandbox для того, чтобы запустить
любой статический метод из UI (юзер нажал кнопку и тп) и при этом показать некий фидбек юзеру.
Решает проблемы -
1. Показать прогресс бар нереально, ибо что там внутри статического метода неизвестно
2. Браузер убьет сессию если сессия не отвечает долгое время
3. Юзер нажмет туже кнопку опять и опять и опять и вообще будет в непонятках что происходит
Аналог в 2012 - зависший клиент. Или запуск батча на клиенте без отправки на сервер.
Тоесть SysOperationSandbox надо использовать тогда, когда на кнопку повесили функционал, который может выполнятся продолжительное время, но при этом в большинстве случаев займет пару секунд. Или юзер должен дождатся результата выполнения.
Как чел описал в блоге, проблему можно решить по разному (например, element.runAsync() или реализовать батч).
Цитата:
теперь информировать должен вызывающий класс, а процесс-обработчик должен молчать в тряпочку...
Процесс-обработчик понятия не имеет, что его вызвали из UI.
Цитата:
почему именно такая архитектура?
Заметь, callback в примере с runAsync() не про SysOperationSandbox. И посути тоже самое что в C# -
MSDN asynccallback