У меня довольно простой вопрос.
Я пишу простую утилиту, которая будет запускать различные сценарии SQL на основе параметров, определенных пользователем.
Чтобы пользовательский интерфейс реагировал и предоставлял информацию о состоянии выполняемых сценариев, я решил, что использование ThreadPool.QueueUserWorkItem
будет уместно для выполнения различных сценариев (через SMO).
Однако меня немного смущает вопрос о том, как я могу ретранслировать выходную информацию, которую SMO вернет обратно в поток пользовательского интерфейса.
Для этой утилиты я использую WPF и MVVM для презентации. Я думаю, что у меня был бы класс ScriptWorker
, в который я мог бы передать параметры, местоположения и порядок, в котором нужно запускать сценарии.
После запуска каждого сценария я бы хотел как-то вернуть результаты в поток пользовательского интерфейса, чтобы он обновлял окно вывода, а затем я бы хотел, чтобы работник перешел к следующей задаче.
Я уверен, что это основной вопрос, но, посмотрев на QueueUserWorkItem
и увидев, что я, по сути, начинаю работу с помощью обратного вызова, я не уверен, как мне добиться того, чего я хотел бы достичь. 1016 *
Я основываю свои предположения на этой статье Microsoft:
http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx
Спасибо за информацию!