Leggi in inglese Modifica

Condividi tramite


CompletedEventHandler Delegate

Definition

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents the method that will handle the Completed event.

C#
public delegate void CompletedEventHandler(object sender, CompletedEventArgs e);

Parameters

sender
Object

The instance of the object for which to invoke this method.

e
CompletedEventArgs

The CompletedEventArgs that specifies the reason the event was invoked.

Examples

The following example calls a method asynchronously. The Win32_Process.Create method is called to create a new process for Calc.exe.

C#
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;
    }
}

Extension Methods

GetMethodInfo(Delegate)

Gets an object that represents the method represented by the specified delegate.

Applies to

Prodotto Versioni
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)