using System;
using System.Threading;
public class MainClass
{
// Declare the delegate for the async call.
private delegate Decimal Compute( int year );
// The method that computes the taxes.
private static Decimal DecimalCompute( int year ) {
Console.WriteLine( "Computing taxes in thread {0}", Thread.CurrentThread.GetHashCode() );
Thread.Sleep( 6000 );
return 4.9M;
}
static void Main() {
Compute work = new Compute(DecimalCompute );
IAsyncResult pendingOp = work.BeginInvoke( 2004, null, null );
Thread.Sleep( 3000 );
Console.WriteLine( "Waiting for operation to complete." );
Decimal result = work.EndInvoke( pendingOp );
Console.WriteLine( "Taxes owed: {0}", result );
}
}
Output
Computing taxes in thread 3
Waiting for operation to complete.
Taxes owed: 4.9