计算1到n的数字之和:
static void Main(string[] args)
{
Func<UInt64, UInt64> sumDelegate = Sum;
sumDelegate.BeginInvoke(1000000000,SumIsDone,sumDelegate);
Console.WriteLine("Calculating....");
Console.ReadLine();
}
private static UInt64 Sum(UInt64 n)
{
UInt64 sum = 0;
for (UInt64 i = 0; i < n; i++)
{
checked {
sum += i;
}
}
return sum;
}
private static void SumIsDone(IAsyncResult iar)
{
var sumDelegate = (Func<UInt64, UInt64>)iar.AsyncState;
try
{
Console.WriteLine("Sum's result: "+sumDelegate.EndInvoke(iar));
}
catch (OverflowException)
{
Console.WriteLine("Sum's result is too large to calculate");
}
}