スレッドを一時的に止めるには、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