Ejemplo n.º 1
0
 protected bool mIsBackground;               // 是否为后台线程,如果是后台线程,则在应用程序关闭时,子线程会自动强制关闭
 public CustomThread(string name)
 {
     mName         = name;
     mFinish       = true;
     mRunning      = false;
     mCallback     = null;
     mThread       = null;
     mTimeLock     = null;
     mPause        = false;
     mIsBackground = true;
 }
Ejemplo n.º 2
0
 public void start(CustomThreadCallback 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;
     logInfo("线程启动成功 : " + mName, LOG_LEVEL.LL_FORCE);
 }
Ejemplo n.º 3
0
 public void start(CustomThreadCallback callback, int frameTimeMS = 15)
 {
     logConsole("准备启动线程 : " + mName);
     if (mThread != null)
     {
         return;
     }
     mTimeLock    = new ThreadTimeLock(frameTimeMS);
     mRunning     = true;
     mCallback    = callback;
     mThread      = new Thread(run);
     mThread.Name = mName;
     mThread.Start();
     mThread.IsBackground = mIsBackground;
     logConsole("线程启动成功 : " + mName);
 }
Ejemplo n.º 4
0
 public void stop()
 {
     UnityUtility.logInfo("准备退出线程 : " + mName, LOG_LEVEL.LL_FORCE);
     mRunning = false;
     while (!mIsBackground && !mFinish)
     {
     }
     if (mThread != null)
     {
         mThread.Abort();
     }
     mThread   = null;
     mCallback = null;
     mTimeLock = null;
     mPause    = false;
     UnityUtility.logInfo("线程退出完成! 线程名 : " + mName, LOG_LEVEL.LL_FORCE);
 }
Ejemplo n.º 5
0
 public void stop()
 {
     if (mThread == null)
     {
         return;
     }
     mRunning = false;
     while (!mIsBackground && !mFinish)
     {
     }
     mThread?.Abort();
     mThread   = null;
     mCallback = null;
     mTimeLock = null;
     mPause    = false;
     logInfo("线程退出完成! 线程名 : " + mName, LOG_LEVEL.LL_FORCE);
 }
Ejemplo n.º 6
0
 public void stop()
 {
     logConsole("准备退出线程 : " + mName);
     mRunning = false;
     while (!mIsBackground && !mFinish)
     {
     }
     if (mThread != null && !mIsBackground)
     {
         mThread.Abort();
     }
     mThread   = null;
     mCallback = null;
     mTimeLock = null;
     mPause    = false;
     logConsole("线程退出完成! 线程名 : " + mName);
 }