Edit

Share via


CompletedEventHandler Delegate

Definition

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

Product Versions
.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)