Thread.Sleep

スレッドを一時的に止めるには、Thread.Sleepに休止する時間をミリ秒で指定する・・・。

Thread.Sleep メソッド (Int32) (System.Threading)

前回の"Main~"や"Thread~"を1つ出力するたびに1秒停止というのを繰り返す・・・。

こんな感じで、MainもThreadFuncも1秒ごとに出力するようにする・・・。

すると最初は、

ThreadFunc(1)
Main(1)

1秒後は、

ThreadFunc(1)
Main(1)
ThreadFunc(2)
Main(2)

という感じで、1秒ごとに同時に出力されてる・・・。
最終的に、

ThreadFunc(1)
Main(1)
ThreadFunc(2)
Main(2)
ThreadFunc(3)
Main(3)
ThreadFunc(4)
Main(4)
ThreadFunc(5)
Main(5)
続行するには何かキーを押してください . . .

となる・・・。
メインスレッドと別スレッド(ワーカースレッドともいう・・・。)が同時に処理してるのがわかる・・・。

また、場合によっては、

ThreadFunc(1)
Main(1)
Main(2)
ThreadFunc(2)
ThreadFunc(3)
Main(3)
Main(4)
ThreadFunc(4)
ThreadFunc(5)
Main(5)
続行するには何かキーを押してください . . .

こうなる場合もあり、どちらが先に出力されるかも不定・・・。

Sample/dotnet/Thread/Sleep/src/Thread_ at master · bg1bgst333/Sample · GitHub