次の方法で共有


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 内)

参照

ManagementEventWatcher メンバ | System.Management 名前空間