/// <summary> /// 接続 /// </summary> /// <param name="prof">プロファイル</param> public void ConnectProfile(ConnectProfileStruct prof) { _connectCancelFlg = false; ConnectProfileTerminal terminal = new ConnectProfileTerminal(prof); Thread _connectThread = new Thread((ThreadStart) delegate() { terminal.Connect(); }); _connectThread.IsBackground = true; _connectThread.Start(); // スレッド終了待機(Joinを使用するとフリーズしてしまう) while (true) { Thread.Sleep(10); if (_connectCancelFlg == true) { _connectThread.Abort(); // 接続キャンセル(スレッド終了) } if (_connectThread.IsAlive != true) { break; // スレッド終了後break } System.Windows.Forms.Application.DoEvents(); } }
/// <summary> /// 接続 /// </summary> /// <param name="prof">プロファイル</param> public void ConnectProfile(ConnectProfileStruct prof) { _connectCancelFlg = false; ConnectProfileTerminal terminal = new ConnectProfileTerminal(prof); Thread _connectThread = new Thread((ThreadStart)delegate() { terminal.Connect(); }); _connectThread.IsBackground = true; _connectThread.Start(); // スレッド終了待機(Joinを使用するとフリーズしてしまう) while (true) { Thread.Sleep(10); if (_connectCancelFlg == true) _connectThread.Abort(); // 接続キャンセル(スレッド終了) if (_connectThread.IsAlive != true) break; // スレッド終了後break System.Windows.Forms.Application.DoEvents(); } }