円周率を計算するメソッドがあります。C#5 の async/await 機能を使用してこれを高速化できるかどうか疑問に思っていました。
public decimal CalculatePi(int measure)
{
var target = measure;
decimal current = 3;
var incrementing = false;
var inner = (decimal)1.0;
while (current < target)
{
if (!incrementing)
{
inner = inner - (1/current);
current += 2;
incrementing = true;
}
if (incrementing)
{
inner = inner + (1/current);
current += 2;
incrementing = false;
}
}
return 4*inner;
}