ManagementOperationObserver.ObjectReady 이벤트
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
새 개체를 사용할 수 있게 되면 발생합니다.
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
이벤트 유형
예제
다음 예제에서는 비동기 인스턴스 열거를 수행 하는 방법을 보여 줍니다. 이 예제에서는 사용 된 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
설명
이벤트 데이터
이벤트 처리기는 이 이벤트와 관련된 데이터가 들어 있는 ObjectReadyEventArgs 형식의 인수를 받습니다. 다음 ObjectReadyEventArgs 속성이이 이벤트에 관련 정보를 제공 합니다.
속성 | 설명 |
---|---|
Context (에서 상속 되며, ManagementEventArgs) | 이벤트를 트리거한 작업에서 반환된 작업 컨텍스트를 가져옵니다. |
NewObject | 새로 반환된 개체를 가져옵니다. |
.NET Framework 보안
직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분적으로 신뢰할 수 있는 코드에서 라이브러리를 사용 하 여입니다.
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET