Thread C# Tutorial

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 );
    }
}
Computing taxes in thread 3
Waiting for operation to complete.
Taxes owed: 4.9