ManagementOperationObserver 类

定义

管理异步操作和处理异步接收的管理信息和事件。Manages asynchronous operations and handles management information and events received asynchronously.

public ref class ManagementOperationObserver
public class ManagementOperationObserver
type ManagementOperationObserver = class
Public Class ManagementOperationObserver
继承
ManagementOperationObserver

示例

下面的示例演示如何执行异步实例枚举。The following example demonstrates how to perform an asynchronous instance enumeration. 该示例使用 ManagementOperationObserver 类异步处理管理信息和事件。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;
    }
}
Imports System.Management

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

Public Class EnumerateInstancesAsync

    Public Sub New()

        Me.isCompleted = False

        ' Enumerate asynchronously using Object Searcher
        ' ===============================================

        ' Instantiate an object searcher with the query
        Dim searcher As ManagementObjectSearcher
        searcher = New ManagementObjectSearcher( _
            New SelectQuery("Win32_Service"))

        ' Create a results watcher object, 
        ' and handler for results and completion
        Dim results As ManagementOperationObserver
        results = New ManagementOperationObserver

        ' Attach handler to events for
        ' results and completion
        AddHandler results.ObjectReady, _
            AddressOf Me.NewObject
        AddHandler results.Completed, _
            AddressOf Me.Done

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

        ' Do something else while results 
        ' arrive(asynchronously)
        Do While (Me.Completed.Equals(False))

            System.Threading.Thread.Sleep(1000)
        Loop

        Me.Reset()

    End Sub

    Private isCompleted As Boolean

    Private Sub NewObject(ByVal sender As Object, _
        ByVal e As ObjectReadyEventArgs)

        Console.WriteLine("Service : {0}, State = {1}", _
         e.NewObject("Name"), e.NewObject("State"))
    End Sub

    Private ReadOnly Property Completed() As Boolean
        Get
            Return isCompleted
        End Get
    End Property

    Private Sub Reset()

        isCompleted = False
    End Sub

    Private Sub Done(ByVal sender As Object, _
        ByVal e As CompletedEventArgs)

        isCompleted = True
    End Sub


    Public Shared Function _
        Main(ByVal args() As String) As Integer

        Dim example As New EnumerateInstancesAsync

        Return 0

    End Function

End Class

构造函数

ManagementOperationObserver()

初始化 ManagementOperationObserver 类的新实例。Initializes a new instance of the ManagementOperationObserver class. 这就是无参数构造函数。This is the parameterless constructor.

方法

Cancel()

取消所有未完成的操作。Cancels all outstanding operations.

Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
GetHashCode()

用作默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
ToString()

返回一个表示当前对象的 string。Returns a string that represents the current object.

(继承自 Object)

事件

Completed

完成操作后发生。Occurs when an operation has completed.

ObjectPut

成功提交对象后发生。Occurs when an object has been successfully committed.

ObjectReady

新对象可用时发生。Occurs when a new object is available.

Progress

它的出现是为了指示正在进行的操作的进度。Occurs to indicate the progress of an ongoing operation.

适用于