Глянул в код.
Sandbox это новый механизм, который позволяет выполнять длительные операции в отдельной сессии но при этом асинхронно, показывая стандартную форму ожидания асинхронной операции (то есть с точки зрения фреймфорка UI тред продолжает принимать сообщения, с точки зрения пользователя см SysOperationSandboxForm).
Он используется:
- В RunBaseBatch (надо перекрыть метод canRunInNewSession и вызывать runOperation вместо run)
- В SysOperation (см выше при синхронном вызове)
- Напрямую (это то, что приведено в блоге)
То есть если нужны навороты, пользуйтесь старыми фреймворками. Если есть просто статический метод который может долго выполняться, то дергайте напрямую, чтоб не блокировать обработку событий UI.
Я не вижу тут ничего извращенного. Жалко только прогрессбар для операций не реализовали
|