ID:2 i:0 Time:07:33:43.6852960 ID:0 i:0 Time:07:33:43.6852960 ID:1 i:0 Time:07:33:43.6852960 ID:0 i:1 Time:07:33:44.0440966 ID:2 i:1 Time:07:33:44.0440966 ID:1 i:1 Time:07:33:44.0440966 ID:0 i:2 Time:07:33:44.4808974 ID:1 i:2 Time:07:33:44.4808974 ID:2 i:2 Time:07:33:44.4808974 ID:0 i:3 Time:07:33:44.7304978 ID:2 i:3 Time:07:33:44.7304978 ID:1 i:3 Time:07:33:44.7304978 |
前田稔(Maeda Minoru)の超初心者のプログラム入門
/*******************************************/ /*★ class NowTime のスレッド 前田 稔 ★*/ /*******************************************/ using System; using System.Threading; // Thread で実行する Class class NowTime { int id; // Constructor で id を設定 public NowTime(int id) { this.id = id; } // ランダムな時間間隔で時刻を出力 public void Run() { Random rnd = new Random(); for(int i=0; i<4; ++i) { Thread.Sleep(rnd.Next(100, 700)); //100 ~ 699 秒中断 Console.Write("ID:{0} i:{1} Time:{2}\n", id,i,DateTime.Now.TimeOfDay.ToString()); } } } class TestThread { static void Main() { const int N = 3; // 同時に実行するスレッド数 Thread[] threads = new Thread[N]; for(int id=0; id<N; ++id) { NowTime nowtime = new NowTime(id); threads[id] = new Thread(new ThreadStart(nowtime.Run)); threads[id].Start(); } } } |
public NowTime(int id) { this.id = id; } ・・・ const int N = 3; // 同時に実行するスレッド数 Thread[] threads = new Thread[N]; for(int id=0; id<N; ++id) { NowTime nowtime = new NowTime(id); threads[id] = new Thread(new ThreadStart(nowtime.Run)); threads[id].Start(); } |
ID:2 i:0 Time:07:33:43.6852960 ID:0 i:0 Time:07:33:43.6852960 ID:1 i:0 Time:07:33:43.6852960 ID:0 i:1 Time:07:33:44.0440966 ID:2 i:1 Time:07:33:44.0440966 ID:1 i:1 Time:07:33:44.0440966 ID:0 i:2 Time:07:33:44.4808974 ID:1 i:2 Time:07:33:44.4808974 ID:2 i:2 Time:07:33:44.4808974 ID:0 i:3 Time:07:33:44.7304978 ID:2 i:3 Time:07:33:44.7304978 ID:1 i:3 Time:07:33:44.7304978 |
static void Main() { const int N = 3; // 同時に実行するスレッド数 Thread[] threads = new Thread[N]; for(int id=0; id<N; ++id) { NowTime nowtime = new NowTime(id); threads[id] = new Thread(new ThreadStart(nowtime.Run)); threads[id].Start(); } for(int id=0; id<N; ++id) { threads[id].Join(); Console.WriteLine("ID:{0} が終了しました", id); } Console.ReadLine(); } |
ID:2 i:0 Time:07:56:32.0820507 ID:1 i:0 Time:07:56:32.0820507 ID:0 i:0 Time:07:56:32.0820507 ID:0 i:1 Time:07:56:32.5968516 ID:1 i:1 Time:07:56:32.5968516 ID:2 i:1 Time:07:56:32.5968516 ID:2 i:2 Time:07:56:32.8308520 ID:1 i:2 Time:07:56:32.8308520 ID:0 i:2 Time:07:56:32.8308520 ID:1 i:3 Time:07:56:33.5016532 ID:0 i:3 Time:07:56:33.5016532 ID:0 が終了しました ID:1 が終了しました ID:2 i:3 Time:07:56:33.5016532 ID:2 が終了しました |