Esempio n. 1
0
 public static EnterFunc GetFunc(EnterFunc enterFunc)
 {
   ReEntryLock lockObj = new ReEntryLock();
   return delegate()
   {
     lockObj.Run(enterFunc);
   };
 }
Esempio n. 2
0
 /// <summary>
 /// 最初の呼び出し(再入呼び出しではない)の時だけ、
 /// 指定したデリゲートを実行します。
 /// </summary>
 /// <param name="enterFunc"></param>
 public void Run(EnterFunc enterFunc)
 {
   lock (this) {
     if (isEnter) return;
     try {
       isEnter = true;
       enterFunc();
     }
     finally {
       isEnter = false;
     }
   }
 }