ManagementOperationObserver.ObjectReady ManagementOperationObserver.ObjectReady ManagementOperationObserver.ObjectReady ManagementOperationObserver.ObjectReady Event

定義

新しいオブジェクトを使用できるときに発生します。Occurs when a new object is available.

public:
 event System::Management::ObjectReadyEventHandler ^ ObjectReady;
public event System.Management.ObjectReadyEventHandler ObjectReady;
member this.ObjectReady : System.Management.ObjectReadyEventHandler 
Public Event ObjectReady As ObjectReadyEventHandler 

次の例は、非同期インスタンス列挙を実行する方法を示しています。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

注釈

イベント データEvent Data

イベント ハンドラーは、このイベントに関連するデータを含む ObjectReadyEventArgs 型の引数を受け取ります。The event handler receives an argument of type ObjectReadyEventArgs containing data related to this event. ObjectReadyEventArgsのプロパティは、このイベントに固有の情報を提供します。The following ObjectReadyEventArgs properties provide information specific to this event.

プロパティProperty 説明Description
Context(からManagementEventArgs継承)Context (inherited from ManagementEventArgs) イベントを発生させた操作からエコー バックされた操作コンテキストを取得します。Gets the operation context echoed back from the operation that triggered the event.
NewObject 新しく返されたオブジェクトを取得します。Gets the newly-returned object.

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

適用対象