Esempio n. 1
0
 /// <summary>
 /// 单线程处理逻辑
 /// </summary>
 /// <param name="d"></param>
 public void execute(ExecutorDelegate d)
 {
     lock (this) {
         tex.WaitOne();
         d();
         tex.ReleaseMutex();
     }
 }
Esempio n. 2
0
 /// <summary>
 /// 通过mutex和lock两把锁确保同一时间只有一个线程执行委托;
 /// </summary>
 /// <param name="func"></param>
 private void ExecuteEx(ExecutorDelegate func)
 {
     lock (this)
     {
         mutex.WaitOne();      //锁了
         func();
         mutex.ReleaseMutex(); //解锁
     }
 }
Esempio n. 3
0
 /// <summary>
 /// 单线程处理逻辑,使用锁将线程锁住,执行完毕后,释放
 /// </summary>
 /// <param name="ed"></param>
 public void Execute(ExecutorDelegate ed)
 {
     lock (this)
     {
         tex.WaitOne();
         ed();
         tex.ReleaseMutex();
     }
 }
Esempio n. 4
0
 /// <summary>
 /// 仅仅是为了静态类可以直接点到ExecuteEx方法
 /// </summary>
 /// <param name="func"></param>
 public static void Execute(ExecutorDelegate func)
 {
     instance.ExecuteEx(func);
 }
Esempio n. 5
0
 private Promise(ExecutorDelegate Executor, float delay)
 {
     _delay = delay;
     Executor(_Resolve, _Reject);
 }
Esempio n. 6
0
 public Promise(ExecutorDelegate Executor)
 {
     Executor(_Resolve, _Reject);
 }