I created an application wherein
I needed to call a method and forget it; the called method will perform several
operations in background. I don’t want to wait for all the operation to be
completed and then proceed. I wanted to call the method to perform the
operations in background and meanwhile I can proceed with other operations.
There are various ways the
above problem can be solved; however I wanted to go with asynchronous method
call which is demonstrated below with code example:-
Demo
Console Application: Programm.CS class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[]
args)
{
MethodA();
Console.ReadKey();
}
private
static void
MethodA()
{
Console.WriteLine("Method A Execution Started");
DemoAsyncMethodCall.Capture("Call from Method A");
MethodB();
Console.WriteLine("Method A completed");
}
private
static void
MethodB()
{
Console.WriteLine("Inside Method B");
}
}
}
Demo Console
Application: DemoAsyncMethodCall.CS class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
namespace ConsoleApplication1
{
public class DemoAsyncMethodCall
{
delegate
void MethodDelegate(string message);
public static void Capture(string message)
{
MethodDelegate
dlgt = new MethodDelegate(saveData);
IAsyncResult
ar = dlgt.BeginInvoke(message, null, null);
}
private
static void
saveData(string message)
{
Console.WriteLine("Aync method call saveData with message: "
+ message);
}
}
}
Demo
Console Application: Output