Freigeben über


ManagementOperationObserver.ObjectReady-Ereignis

Tritt ein, wenn ein neues Objekt verfügbar ist.

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

Syntax

'Declaration
Public Event ObjectReady As ObjectReadyEventHandler
'Usage
Dim instance As ManagementOperationObserver
Dim handler As ObjectReadyEventHandler

AddHandler instance.ObjectReady, handler
public event ObjectReadyEventHandler ObjectReady
public:
event ObjectReadyEventHandler^ ObjectReady {
    void add (ObjectReadyEventHandler^ value);
    void remove (ObjectReadyEventHandler^ value);
}
/** @event */
public void add_ObjectReady (ObjectReadyEventHandler value)

/** @event */
public void remove_ObjectReady (ObjectReadyEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Ereignisdaten

Der Ereignishandler empfängt ein Argument vom Typ ObjectReadyEventArgs mit Daten zu diesem Ereignis. Die folgenden ObjectReadyEventArgs-Eigenschaften stellen Informationen bereit, die sich auf dieses Ereignis beziehen.

Eigenschaft

Beschreibung

Context (von ManagementEventArgs vererbt)

Ruft den Operationskontext ab, der von der das Ereignis auslösenden Operation wiedergegeben wurde.

NewObject

Ruft das neu zurückgegebene Objekt ab.

.NET Framework-Sicherheit

Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann nicht von teilweise vertrauenswürdigem Code verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie eine asynchrone Instanzenumeration ausgeführt wird. Im Beispiel wird die ManagementOperationObserver-Klasse verwendet, um Verwaltungsinformationen und Ereignisse asynchron zu behandeln.

Imports System
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
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-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ManagementOperationObserver-Klasse
ManagementOperationObserver-Member
System.Management-Namespace