C#でマルチスレッドを書く方法はいくつかありますが、個人的にお気に入りの方法が delegateを使ったものです。 なぜならば ・引数を渡せる ・返り値を受け取れる System.Threading.Threadでは、クラス変数を使った受け渡しになってしまうので・・・。 実際の例は private delegate int AddFuncDelegate(int a, int b); void main() { AddFuncDelegate afd = addFunc; IAsyncResult iar = afd.BeginInvoke(1, 2, null, null); while(true) { if(iar.IsCompleted) { break; } System.Threading.Thread.Sleep(100);