Выполнение асинхронного запроса Configuration Manager с помощью управляемого кода
В Configuration Manager для выполнения асинхронного запроса с помощью управляемого поставщика SMS используется метод ProcessQuery.
Первым параметром метода ProcessQuery является экземпляр класса SmsBackgroundWorker , который предоставляет два обработчика событий:
QueryProcessObjectReady. Этот обработчик событий вызывается для каждого объекта, возвращаемого запросом. Обработчик событий предоставляет объект IResultObject, представляющий объект .
QueryProcessCompleted. Этот обработчик событий вызывается по завершении запроса. В нем также содержатся сведения о любых возникающих ошибках. Дополнительные сведения см. в статье Сведения об обработке ошибок см. в статье Обработка Configuration Manager асинхронных ошибок с помощью управляемого кода.
Вторым параметром метода ProcessQuery является инструкция WQL для запроса.
Выполнение асинхронного запроса
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Создайте объект SmsBackgroundWorker и заполните свойства QueryProcessorObjectReady и QueryProcessorCompleted именами методов обратного вызова.
Из объекта WqlConnectionManager, полученного на шаге 1, вызовите метод ProcessQuery объекта QueryProcessor, чтобы запустить асинхронный запрос.
Пример
В следующем примере выполняется запрос для всех доступных объектов SMS_Collection, а в обработчике событий этот пример записывает несколько свойств коллекции в консоль Configuration Manager.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.
public void QueryCollections(WqlConnectionManager connection)
{
try
{
// Set up the query.
SmsBackgroundWorker bw1 = new SmsBackgroundWorker();
bw1.QueryProcessorObjectReady += new EventHandler<QueryProcessorObjectEventArgs>(bw1_QueryProcessorObjectReady);
bw1.QueryProcessorCompleted += new EventHandler<RunWorkerCompletedEventArgs>(bw1_QueryProcessorCompleted);
// Query for all collections.
connection.QueryProcessor.ProcessQuery(bw1, "select * from SMS_Collection");
// Pause while query runs.
Console.ReadLine();
}
catch (SmsException ex)
{
Console.WriteLine("Failed to start asynchronous query: ", ex.Message);
}
}
void bw1_QueryProcessorObjectReady(object sender, QueryProcessorObjectEventArgs e)
{
try
{
// Get the collection.
IResultObject collection = (IResultObject)e.ResultObject;
//Display properties.
Console.WriteLine(collection["CollectionID"].StringValue);
Console.WriteLine(collection["Name"].StringValue);
Console.WriteLine();
collection.Dispose();
}
catch (SmsQueryException eX)
{
Console.WriteLine("Query Error: " + eX.Message);
}
}
void bw1_QueryProcessorCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Console.WriteLine("Done...");
}
Этот пример метода имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
connection |
Управляемых: WqlConnectionManager |
Допустимое подключение к поставщику SMS. |
Компиляция программы
Пространства имен
System;
System.Collections.Generic;
System.ComponentModel
Майкрософт. ConfigurationManagement.ManagementProvider
Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Надежное программирование
Configuration Manager исключения, которые могут быть вызваны: SmsConnectionException и SmsQueryException. Их можно поймать вместе с SmsException.
См. также
Общие сведения об объектахConfiguration Manager отложенные свойства
Вызов метода класса объектов Configuration Manager с помощью управляемого кода
Подключение к поставщику Configuration Manager с помощью управляемого кода
Создание объекта Configuration Manager с помощью управляемого кода
Изменение объекта Configuration Manager с помощью управляемого кода
Выполнение синхронного запроса Configuration Manager с помощью управляемого кода
Чтение объекта Configuration Manager с помощью управляемого кода
Чтение отложенных свойств с помощью управляемого кода
Выполнение синхронного запроса Configuration Manager с помощью управляемого кода
Configuration Manager расширенный язык запросов WMI
Результирующие наборы Configuration Manager
специальные запросы Configuration Manager
Сведения о запросах