System.Threading.Thread.Startは一度しか開始されない。
.NET FrameworkのSystem.Threading.Threadを使用していて使用方法を誤って,大きなバグを招いてしまった。
System.Threading.Threadの使い方を間違えてしまった。
例えば,以下のようなコードでは最初のthread.Start()では意図通りRun()の中身が実行されるが,2回目のStart()では実行されない。
一応ドキュメントには載っている。
例外が発生すると思うのだが,どういうコンテキストで実行したか,例外が出ないことがあって大きなバグになってしまった。
一回一回new Thread(Run)を呼んでおけばよい。
using System;
using System.Threading;
namespace TEST_THREAD
{
class Program
{
static void Main(string[] args)
{
Thread thread = new Thread(Run);
thread.Start();
Thread.Sleep(2000);
thread.Start();
Thread.Sleep(2000);
}
private static void Run()
{
Console.WriteLine("Started");
}
}
}

