Export (0) Print
Expand All

ManagementOperationObserver Class

Manages asynchronous operations and handles management information and events received asynchronously.

System.Object
  System.Management.ManagementOperationObserver

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

public class ManagementOperationObserver

The ManagementOperationObserver type exposes the following members.

  NameDescription
Public methodManagementOperationObserverInitializes a new instance of the ManagementOperationObserver class. This is the default constructor.
Top

  NameDescription
Public methodCancelCancels all outstanding operations.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public eventCompletedOccurs when an operation has completed.
Public eventObjectPutOccurs when an object has been successfully committed.
Public eventObjectReadyOccurs when a new object is available.
Public eventProgressOccurs to indicate the progress of an ongoing operation.
Top

The following example demonstrates how to perform an asynchronous instance enumeration. The example uses the ManagementOperationObserver class to handle management information and events asynchronously.

using System;
using System.Management;

// This example demonstrates how 
// to perform an asynchronous instance enumeration. 

public class EnumerateInstancesAsync 
{
    public EnumerateInstancesAsync()
    {
        // Enumerate asynchronously using Object Searcher 
        // =============================================== 

        // Instantiate an object searcher with the query
        ManagementObjectSearcher searcher = 
            new ManagementObjectSearcher(new
            SelectQuery("Win32_Service")); 

        // Create a results watcher object, 
        // and handler for results and completion
        ManagementOperationObserver results = new
            ManagementOperationObserver();

        // Attach handler to events for results and completion
        results.ObjectReady += new 
            ObjectReadyEventHandler(this.NewObject);
        results.Completed += new 
            CompletedEventHandler(this.Done);

        // Call the asynchronous overload of Get() 
        // to start the enumeration
        searcher.Get(results);

        // Do something else while results 
        // arrive asynchronously 
        while (!this.Completed)
        {
            System.Threading.Thread.Sleep (1000);
        }

        this.Reset();

    }

    private bool isCompleted = false;

    private void NewObject(object sender,
        ObjectReadyEventArgs obj) 
    {
        Console.WriteLine("Service : {0}, State = {1}", 
            obj.NewObject["Name"],
            obj.NewObject["State"]);
    }

    private bool Completed 
    {
        get
        { 
            return isCompleted;
        }
    }

    private void Reset()   
    {
        isCompleted = false;
    }

    private void Done(object sender,
        CompletedEventArgs obj) 
    {
        isCompleted = true;
    }

    public static void Main()
    {
        EnumerateInstancesAsync example =
            new EnumerateInstancesAsync();

        return;
    }

}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft