CompletedEventArgs 类

定义

保存 Completed 事件的事件数据。

public ref class CompletedEventArgs : System::Management::ManagementEventArgs
public class CompletedEventArgs : System.Management.ManagementEventArgs
type CompletedEventArgs = class
    inherit ManagementEventArgs
Public Class CompletedEventArgs
Inherits ManagementEventArgs
继承
CompletedEventArgs

示例

以下示例异步调用 方法。 调用 Win32_Process.Create 方法为 Calc.exe 创建新进程。

using System;
using System.Management;

public class InvokeMethodAsync
{
    private bool isComplete = false;
    private ManagementBaseObject returnObject;

    public InvokeMethodAsync()
    {
        // Get the object on which the method
        // will be invoked
        ManagementClass processClass =
            new ManagementClass("Win32_Process");

        // Create a results and completion handler
        ManagementOperationObserver handler =
            new ManagementOperationObserver();
        handler.Completed +=
            new CompletedEventHandler(this.Completed);

        // Invoke method asynchronously
        ManagementBaseObject inParams =
            processClass.GetMethodParameters("Create");
        inParams["CommandLine"] = "calc.exe";
        processClass.InvokeMethod(
            handler, "Create", inParams, null);

        // Do something while method is executing
        while(!this.IsComplete)
        {
            System.Threading.Thread.Sleep(1000);
        }
    }

    // Property allows accessing the result
    // object in the main function
    private ManagementBaseObject ReturnObject
    {
        get
        {
            return returnObject;
        }
    }

    // Delegate called when the method completes
    // and results are available
    private void NewObject(object sender,
        ObjectReadyEventArgs e)
    {
        Console.WriteLine("New Object arrived!");
        returnObject = e.NewObject;
    }

    // Used to determine whether the method
    // execution has completed
    private bool IsComplete
    {
        get
        {
            return isComplete;
        }
    }

    private void Completed(object sender,
        CompletedEventArgs e)
    {
        isComplete = true;
        Console.WriteLine("Method invoked.");
    }

    public static void Main()
    {
        InvokeMethodAsync invokeMethod = new InvokeMethodAsync();

        return;
    }
}
Imports System.Management

Public Class InvokeMethodAsync

    Private isFinished As Boolean = False
    Private returnObj As ManagementBaseObject

    Public Sub New()

        ' Get the object on which the method 
        ' will be invoked
        Dim processClass As ManagementClass = _
            New ManagementClass("Win32_Process")

        ' Create a results and completion handler
        Dim handler As ManagementOperationObserver = _
            New ManagementOperationObserver
        AddHandler handler.Completed, _
            AddressOf Me.Completed

        ' Invoke method asynchronously
        Dim inParams As ManagementBaseObject = _
            processClass.GetMethodParameters("Create")
        inParams("CommandLine") = "calc.exe"
        processClass.InvokeMethod( _
            handler, "Create", inParams, Nothing)

        ' Do something while method is executing
        While (Not Me.IsComplete)

            System.Threading.Thread.Sleep(1000)
        End While

    End Sub

    ' Property allows accessing the result
    ' object in the main function
    Private Function ReturnObject() As ManagementBaseObject

        Return returnObj

    End Function

    ' Delegate called when the method completes
    ' and results are available
    Private Sub NewObject(ByVal sender As Object, _
        ByVal e As ObjectReadyEventArgs)

        Console.WriteLine("New Object arrived!")
        returnObj = e.NewObject

    End Sub

    ' Used to determine whether the method
    ' execution has completed
    Private Function IsComplete() As Boolean

        Return isFinished

    End Function

    Private Sub Completed(ByVal sender As Object, _
        ByVal e As CompletedEventArgs)

        isFinished = True
        Console.WriteLine("Completed method invocation.")

    End Sub

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

        Dim invokeMethod As New InvokeMethodAsync

        Return 0

    End Function


End Class

属性

Context

获取从触发事件的操作反射回的操作上下文。

(继承自 ManagementEventArgs)
Status

获取操作的完成状态。

StatusObject

获取 WMI 对象内的其他状态信息。 这可能是 null

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于