ManagementEventWatcher クラス
指定したイベント クエリに基づいて、一時的なイベント通知をサブスクライブします。
この型のすべてのメンバの一覧については、ManagementEventWatcher メンバ を参照してください。
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Management.ManagementEventWatcher
Public Class ManagementEventWatcher
Inherits Component
[C#]
public class ManagementEventWatcher : Component
[C++]
public __gc class ManagementEventWatcher : public Component
[JScript]
public class ManagementEventWatcher extends Component
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
使用例
using System;
using System.Management;
// This example demonstrates how to subscribe to an event using the ManagementEventWatcher object.
class Sample_ManagementEventWatcher
{
public static int Main(string[] args) {
//For the example, we'll put a class into the repository, and watch
//for class deletion events when the class is deleted.
ManagementClass newClass = new ManagementClass();
newClass["__CLASS"] = "TestDeletionClass";
newClass.Put();
//Set up an event watcher and a handler for the event
ManagementEventWatcher watcher = new ManagementEventWatcher(
new WqlEventQuery("__ClassDeletionEvent"));
MyHandler handler = new MyHandler();
watcher.EventArrived += new EventArrivedEventHandler(handler.Arrived);
//Start watching for events
watcher.Start();
// For the purpose of this sample, we delete the class to trigger the event
// and wait for two seconds before terminating the consumer
newClass.Delete();
System.Threading.Thread.Sleep(2000);
//Stop watching
watcher.Stop();
return 0;
}
public class MyHandler {
public void Arrived(object sender, EventArrivedEventArgs e) {
Console.WriteLine("Class Deleted = " +
((ManagementBaseObject)e.NewEvent["TargetClass"])["__CLASS"]);
}
}
}
[Visual Basic]
Imports System
Imports System.Management
' This example demonstrates how to subscribe an event using the ManagementEventWatcher object.
Class Sample_ManagementEventWatcher
Public Shared Sub Main()
' For the example, we'll put a class into the repository, and watch
' for class deletion events when the class is deleted.
Dim newClass As New ManagementClass()
newClass("__CLASS") = "TestDeletionClass"
newClass.Put()
' Set up an event watcher and a handler for the event
Dim watcher As _
New ManagementEventWatcher(New WqlEventQuery("__ClassDeletionEvent"))
Dim handler As New MyHandler()
AddHandler watcher.EventArrived, AddressOf handler.Arrived
' Start watching for events
watcher.Start()
' For the purpose of this sample, we delete the class to trigger the event
' and wait for two seconds before terminating the consumer
newClass.Delete()
System.Threading.Thread.Sleep(2000)
' Stop watching
watcher.Stop()
End Sub
Public Class MyHandler
Public Sub Arrived(sender As Object, e As EventArrivedEventArgs)
Console.WriteLine("Class Deleted = " & _
CType(e.NewEvent("TargetClass"), ManagementBaseObject)("__CLASS"))
End Sub
End Class
End Class
[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Management
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Management (System.Management.dll 内)