//開始処理 //Override可能 public void Start() { if (_threadBaseKind == ThreadBaseKind.Running){ return; } if (!OnStartThread()){ //Ver5.9.8 _life = false; return; } try{ //Ver5.9.0 _threadBaseKind = ThreadBaseKind.Before; _life = true; _t = new Thread(Loop) { IsBackground = true }; _t.Start(); //スレッドが起動してステータスがRUNになるまで待機する Thread.Sleep(1); while (_threadBaseKind==ThreadBaseKind.Before) { Thread.Sleep(10); } } catch{ } }
//開始処理 //Override可能 public void Start() { if (_threadBaseKind == ThreadBaseKind.Running) { return; } if (!OnStartThread()) { //Ver5.9.8 _life = false; return; } try{ //Ver5.9.0 _threadBaseKind = ThreadBaseKind.Before; _life = true; _t = new Thread(Loop) { IsBackground = true }; _t.Start(); //スレッドが起動してステータスがRUNになるまで待機する Thread.Sleep(1); while (_threadBaseKind == ThreadBaseKind.Before) { Thread.Sleep(10); } } catch { } }
void Loop() { //[Java] 現在、Javaでは、ここでThreadBaseKindをRunnigにしている try { //[C#] C#の場合は、Start()が終了してしまうのを避けるため、OnRunThreadの中で、準備が完了してから //ThreadBaseKindをRunningにする OnRunThread(); } catch (Exception ex) { if (_logger != null) { _logger.Set(LogKind.Error, null, 1, ex.Message); _logger.Exception(ex, null, 2); } } //life = true;//Stop()でスレッドを停止する時、life=falseでループから離脱させ、このlife=trueで処理終了を認知する _threadBaseKind = ThreadBaseKind.After; }
void Loop() { //[Java] 現在、Javaでは、ここでThreadBaseKindをRunnigにしている try { //[C#] C#の場合は、Start()が終了してしまうのを避けるため、OnRunThreadの中で、準備が完了してから //ThreadBaseKindをRunningにする OnRunThread(); } catch (Exception ex) { if (_logger != null){ _logger.Set(LogKind.Error, null, 1, ex.Message); _logger.Exception(ex, null, 2); } } //life = true;//Stop()でスレッドを停止する時、life=falseでループから離脱させ、このlife=trueで処理終了を認知する _threadBaseKind = ThreadBaseKind.After; }