ManagementOperationObserver 類別

定義

管理非同步作業 (Asynchronous Operation),並處理非同步接收的管理資訊及事件。

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

範例

下列範例示範如何執行非同步實例列舉。 此範例會 ManagementOperationObserver 使用 類別以非同步方式處理管理資訊和事件。

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 類別的新執行個體。 這是無參數建構函式。

方法

Cancel()

取消所有未處理的作業。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

事件

Completed

發生於作業已經完成時。

ObjectPut

發生於物件已經成功認可時。

ObjectReady

發生於新物件可用時。

Progress

發生來指示持續作業的進度。

適用於