私はマルチスレッド技術の使用に非常に慣れていませんが、私が試したことは次のとおりです。
Thread thread = null;
for (int minute = 0; minute < 60; minute++)
{
Thread.Sleep(60000);
if (thread != null)
{
while (thread.ThreadState == ThreadState.Running) { }
}
thread = new Thread(delegate()
{
// Do stuff during the next minute whilst the main thread is sleeping.
});
thread.Start();
}
ここで達成しようとしているのは、メインスレッドがスリープしている間にスレッドを実行して作業を行うことですが、上記のコードが機能しない理由がわかりません。最初のループ (スレッドの開始後) に続いて、ThreadState が「実行中」から変化していないように見えます。これを行うためのよりエレガントな方法があるかどうかについても興味があります。
誰でも問題を知っていますか?