ManagementOperationObserver.ObjectReady Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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 Custom Event ObjectReady As ObjectReadyEventHandler
Public Event ObjectReady As ObjectReadyEventHandler
Event Type
Examples
The following example demonstrates how to perform an asynchronous instance enumeration. 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
The event handler receives an argument of type ObjectReadyEventArgs containing data related to this event. The following ObjectReadyEventArgs properties provide information specific to this event.
Property | Description |
---|---|
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 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.