改良版です。

double nextframe = (double)System.Environment.TickCount;
float wait = 1000f/60f;
while(frm.Created)
{

if ((double)System.Environment.TickCount >= nextframe)
{

//計算処理


if ((double)System.Environment.TickCount < nextframe + wait)
{
//描画処理
}

nextframe += wait;
}

Application.DoEvents();
}


最強です。