Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill utföra en asynkron fråga med hjälp av den hanterade SMS-providern i Configuration Manager använder du metoden ProcessQuery.
Den första parametern i metoden ProcessQuery är en instans av klassen SmsBackgroundWorker som tillhandahåller två händelsehanterare:
QueryProcessObjectReady. Den här händelsehanteraren anropas för varje objekt som returneras av frågan. Händelsehanteraren innehåller ett IResultObject-objekt som representerar objektet.
QueryProcessCompleted. Den här händelsehanteraren anropas när frågan har slutförts. Den innehåller även information om eventuella fel som uppstår. Mer information finns i Information om felhantering finns i Hantera asynkrona fel i Configuration Manager med hjälp av hanterad kod.
Den andra parametern till av ProcessQuery metoden är WQL-instruktionen för frågan.
Så här utför du en asynkron fråga
Konfigurera en anslutning till SMS-leverantören. Mer information finns i Grunderna för SMS-providern.
Skapa SmsBackgroundWorker-objektet och fyll i egenskaperna QueryProcessorObjectReady och QueryProcessorCompleted med namnen på motringningsmetoderna.
Från det WqlConnectionManager-objekt som du fick i steg ett anropar du metoden QueryProcessor-objektetProcessQuery för att starta den asynkrona frågan.
Exempel
I följande exempel ställs frågor om alla tillgängliga SMS_Collection-objekt, och i händelsehanteraren skriver exemplet flera av samlingsegenskaperna till Configuration Manager-konsolen.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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...");
}
Den här exempelmetoden har följande parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
connection |
Hanterad: WqlConnectionManager |
En giltig anslutning till SMS-leverantören. |
Kompilerar koden
Namnområden
System
System.Collections.Generic
System.ComponentModel
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montering
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Robust programmering
De Configuration Manager undantag som kan uppstå är SmsConnectionException och SmsQueryException. Dessa kan fångas tillsammans med SmsException.
Se även
Översikt över objektConfigurationManager Lazy-egenskaperSå här anropar du en Configuration Manager objektklassmetod med hjälp av förvaltad kodSå här ansluter du till en Configuration Manager -provider med hanterad kodSkapa en Configuration Manager-objekt med hjälp av hanterad kodÄndra ett Configuration Manager-objekt med hjälp av hanterad kodUtföra en synkron Configuration Manager fråga med hjälp av hanterad kodSå här läser du en Configuration Manager Objekt med hjälp av hanterad kodSå här läser du Lazy-egenskaper med hjälp av hanterad kodUtföra en synkron Configuration Manager fråga med hanteradkodConfiguration Manager Extended WMI Query LanguageConfigurationManager resultatuppsättningarConfiguration Manager Särskilda frågorOm frågor