This documentation is archived and is not being maintained.

ManagementClass.GetInstances Method (ManagementOperationObserver)

Returns the collection of all instances of the class, asynchronously.

Namespace:  System.Management
Assembly:  System.Management (in System.Management.dll)

public void GetInstances(
	ManagementOperationObserver watcher


Type: System.Management.ManagementOperationObserver

The object to handle the asynchronous operation's progress.

.NET Framework Security

Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.

The following example shows how to initialize a ManagementClass variable with a ManagementClass constructor and then get all the instances of a WMI class asynchronously.

using System;
using System.Management;

public class AsyncGetExample
    public AsyncGetExample() 
        ManagementClass c = 
            new ManagementClass("Win32_Process");
        ManagementOperationObserver ob =
            new ManagementOperationObserver();
        ob.ObjectReady += new ObjectReadyEventHandler(NewObject);
        ob.Completed += new CompletedEventHandler(Done);


        while (!Completed)
            System.Threading.Thread.Sleep (1000);

        // Here you can use the object


    private bool completed = false;

    private void NewObject(object sender,
        ObjectReadyEventArgs e) 
        Console.WriteLine("New result arrived: {0}",

    private void Done(object sender,
        CompletedEventArgs e) 
        Console.WriteLine("async Get completed !");
        completed = true;

    private bool Completed 
            return completed;

    public static void Main()
        AsyncGetExample asyncGet = new


Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0