ManagementOperationObserver.Completed Event

Definition

Происходит при завершении операции.Occurs when an operation has completed.

public:
 event System::Management::CompletedEventHandler ^ Completed;
public event System.Management.CompletedEventHandler Completed;
member this.Completed : System.Management.CompletedEventHandler 
Public Custom Event Completed As CompletedEventHandler 
Public Event Completed As CompletedEventHandler 

Examples

В следующем примере показано, как выполнить перечисление асинхронных экземпляров.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

Remarks

Данные о событияхEvent Data

Обработчик событий получает аргумент типа CompletedEventArgs, содержащий данные, которые относятся к этому событию.The event handler receives an argument of type CompletedEventArgs containing data related to this event. Следующие свойства CompletedEventArgs предоставляют сведения, относящиеся к этому событию.The following CompletedEventArgs properties provide information specific to this event.

СвойствоProperty DescriptionDescription
Context (наследуется от ManagementEventArgs)Context (inherited from ManagementEventArgs) Получает контекст операции, возвращаемый операцией, которая вызвала событие.Gets the operation context echoed back from the operation that triggered the event.
Status Получает статус завершения операции.Gets the completion status of the operation.
StatusObject Возвращает или задает дополнительные сведения о состоянии в объекте WMI.Gets or sets additional status information within a WMI object. Может содержать пустое значение.This may be null.

Безопасность .NET Framework.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.

Applies to