public static void Init周辺機器()//TODO: { Flags.Initializing周辺機器 = true; //Targetの初期化 bool StopTarget = false; Task.Run(() => { while (true) { if (Flags.StopInit周辺機器) { break; } Flags.StateTarget = Target.InitPort(State.Setting.ComTarget); if (Flags.StateTarget) { //IOボードのリセット(出力をすべてLする) ResetIo(); break; } Thread.Sleep(500); } StopTarget = true; }); //34401Aの初期化 bool Stop34401 = false; Task.Run(() => { _34401 = new Agilent34401A(); while (true) { if (Flags.StopInit周辺機器) { break; } Flags.State34401 = _34401.Init(State.Setting.Com34401); if (Flags.State34401) { break; } Sleep(500); } Stop34401 = true; }); //IOの初期化 bool StopIo = false; Task.Run(() => { while (true) { if (Flags.StopInit周辺機器) { break; } Flags.StateIo = LPC1768.Init(); if (Flags.StateIo) { break; } Sleep(500); } StopIo = true; }); Task.Run(() => { while (true) { CheckAll周辺機器フラグ(); //EPX64Sの初期化の中で、K100、K101の溶着チェックを行っているが、これがNGだとしてもInit周辺機器()は終了する var IsAllStopped = StopTarget && Stop34401 && StopIo; if (Flags.AllOk周辺機器接続 || IsAllStopped) { break; } Sleep(400); } Flags.Initializing周辺機器 = false; }); }