Поделиться через


ManagementOperationObserver.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 

Тип события

Примеры

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

Комментарии

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

Обработчик событий получает аргумент типа CompletedEventArgs, содержащий данные, которые относятся к этому событию. Следующие CompletedEventArgs свойства предоставляют сведения, относящиеся к этому событию.

Свойство. Описание
Context (наследуется от ManagementEventArgs) Получает контекст операции, возвращаемый операцией, которая вызвала событие.
Status Получает статус завершения операции.
StatusObject Возвращает или задает дополнительные сведения о состоянии в объекте WMI. Может содержать пустое значение.

Безопасность платформы .NET Framework

Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из частично доверенного кода.

Применяется к