예제 #1
0
 public static int Release(Original::Semaphore semaphore, int times)
 {
     return
         (Helper.SimpleWrap <int>(
              delegate(ClrSyncManager manager)
     {
         manager.SetMethodInfo("Semaphore.Release(x" + times + ")");
         manager.SyncVarAccess(semaphore, MSyncVarOp.LOCK_RELEASE);
         int returnValue;
         try
         {
             returnValue = semaphore.Release(times);
         }
         catch (Exception e)
         {
             manager.CommitSyncVarAccess();
             throw e;
         }
         manager.CommitSyncVarAccess();
         return returnValue;
     },
              delegate()
     {
         return semaphore.Release(times);
     }
              ));
 }
예제 #2
0
 public static int Release(Original::Semaphore semaphore)
 {
     return(Release(semaphore, 1));
 }