Example #1
0
        //開始処理
        //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{
            }
        }
Example #2
0
        //開始処理
        //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 {
            }
        }
Example #3
0
        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;
        }
Example #4
0
        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;
        }