Beispiel #1
0
 public MyThread(string name)
 {
     mName         = name;
     mCallback     = null;
     mThread       = null;
     mTimeLock     = null;
     mIsBackground = true;
     mRunning      = false;
     mFinish       = true;
     mPause        = false;
 }
Beispiel #2
0
 public void start(MyThreadCallback callback, int frameTimeMS = 15, int forceSleep = 5)
 {
     if (mThread != null)
     {
         return;
     }
     mTimeLock = new ThreadTimeLock(frameTimeMS);
     mTimeLock.setForceSleep(forceSleep);
     mRunning     = true;
     mCallback    = callback;
     mThread      = new Thread(run);
     mThread.Name = mName;
     mThread.Start();
     mThread.IsBackground = mIsBackground;
     log("线程启动成功 : " + mName, LOG_LEVEL.FORCE);
 }
Beispiel #3
0
 public void stop()
 {
     if (mThread == null)
     {
         return;
     }
     mRunning = false;
     while (!mIsBackground && !mFinish)
     {
         Thread.Sleep(0);
     }
     mThread?.Abort();
     mThread   = null;
     mCallback = null;
     mTimeLock = null;
     mPause    = false;
     log("线程退出完成! 线程名 : " + mName, LOG_LEVEL.FORCE);
 }