EventWatcherOptions.BlockSize Eigenschap

Definitie

Hiermee haalt u de blokgrootte op of stelt u deze in voor blokbewerkingen. Bij het wachten op gebeurtenissen geeft deze waarde op hoeveel gebeurtenissen moeten worden gewacht voordat ze worden geretourneerd.

public:
 property int BlockSize { int get(); void set(int value); };
public int BlockSize { get; set; }
member this.BlockSize : int with get, set
Public Property BlockSize As Integer

Waarde van eigenschap

Een geheel getal dat de blokgrootte aangeeft voor een blok met bewerkingen.

Voorbeelden

In het volgende voorbeeld ziet u hoe de client een melding ontvangt wanneer een exemplaar van Win32_Process wordt gemaakt omdat de gebeurtenisklasse is __InstanceCreationEvent. Zie de documentatie Windows Management Instrumentation voor meer informatie. De client ontvangt synchroon gebeurtenissen door de WaitForNextEvent methode aan te roepen. Dit voorbeeld kan worden getest door een proces te starten, zoals Kladblok, terwijl de voorbeeldcode wordt uitgevoerd.

using System;
using System.Management;

// This example shows synchronous consumption of events.
// The client is blocked while waiting for events.

public class EventWatcherPolling
{
    public static int Main(string[] args)
    {
        // Create event query to be notified within 1 second of
        // a change in a service
        string query = "SELECT * FROM" +
            " __InstanceCreationEvent WITHIN 1 " +
            "WHERE TargetInstance isa \"Win32_Process\"";

        // Event options
        EventWatcherOptions eventOptions = new
            EventWatcherOptions();
        eventOptions.Timeout = System.TimeSpan.MaxValue;
        // return after 1 event is received
        eventOptions.BlockSize = 1;

        // Initialize an event watcher and subscribe to events
        // that match this query
        ManagementEventWatcher watcher =
            new ManagementEventWatcher("root\\CIMV2", query,
            eventOptions);

        // Block until the next event occurs
        // Note: this can be done in a loop if waiting for
        //        more than one occurrence
        Console.WriteLine(
            "Open an application (notepad.exe) to trigger an event.");
        ManagementBaseObject e = watcher.WaitForNextEvent();

        //Display information from the event
        Console.WriteLine(
            "Process {0} has been created, path is: {1}",
            ((ManagementBaseObject)e
            ["TargetInstance"])["Name"],
            ((ManagementBaseObject)e
            ["TargetInstance"])["ExecutablePath"]);

        //Cancel the subscription
        watcher.Stop();
        return 0;
    }
}
Imports System.Management

' This example shows synchronous consumption of events. 
' The client is blocked while waiting for events. 

Public Class EventWatcherPolling
    Public Overloads Shared Function _
        Main(ByVal args() As String) As Integer

        ' Create event query to be notified within 1 second of 
        ' a change in a service
        Dim query As String
        query = "SELECT * FROM" & _
            " __InstanceCreationEvent WITHIN 1 " & _
            "WHERE TargetInstance isa ""Win32_Process"""

        ' Event options
        Dim eventOptions As New EventWatcherOptions
        eventOptions.Timeout = System.TimeSpan.MaxValue
        ' return after 1 event is received
        eventOptions.BlockSize = 1


        ' Initialize an event watcher and subscribe to events 
        ' that match this query
        Dim watcher As New ManagementEventWatcher( _
            "root\CIMV2", query, eventOptions)

        ' Block until the next event occurs 
        ' Note: this can be done in a loop
        ' if waiting for more than one occurrence
        Console.WriteLine( _
          "Open an application (notepad.exe) to trigger an event.")
        Dim e As ManagementBaseObject = _
            watcher.WaitForNextEvent()

        'Display information from the event
        Console.WriteLine( _
            "Process {0} has created, path is: {1}", _
            CType(e("TargetInstance"), _
                ManagementBaseObject)("Name"), _
            CType(e("TargetInstance"), _
                ManagementBaseObject)("ExecutablePath"))

        'Cancel the subscription
        watcher.Stop()
        Return 0

    End Function 'Main
End Class

Opmerkingen

Eigenschapswaarde

De standaardwaarde is 1.

.NET Framework-beveiliging

Volledig vertrouwen voor de directe beller. Dit lid kan niet worden gebruikt door gedeeltelijk vertrouwde code. Zie Bibliotheken van gedeeltelijk vertrouwde code gebruiken voor meer informatie.

Van toepassing op