ManagementOperationObserver.Completed 事件
定义
完成操作后发生。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
事件类型
示例
下面的示例演示如何执行异步实例枚举。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
事件处理程序接收 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.
| PropertyProperty | 描述Description |
|---|---|
| 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. 这可能为 null。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.