Ejemplo n.º 1
0
 // specialized WrapRelease for NativeEvents
 public static bool WrapRelease(System.IntPtr o, MSyncVarOp mop, ReleaseOp ro, String instrMethod)
 {
     return(Helper.SimpleWrap <bool>(
                delegate(ClrSyncManager manager)
     {
         manager.SetMethodInfo(instrMethod);
         manager.SyncVarAccess(manager.GetSyncVarFromNativeHandle((System.IntPtr)o), mop);
         bool ret;
         try
         {
             ret = ro(o);
         }
         catch (Exception e)
         {
             manager.CommitSyncVarAccess();
             throw e;
         };
         manager.CommitSyncVarAccess();
         return ret;
     },
                delegate()
     {
         return ro(o);
     }));
 }
Ejemplo n.º 2
0
 public static bool WrapRelease(object o, MSyncVarOp mop, ReleaseOp ro, String instrMethod)
 {
     return(Helper.SimpleWrap <bool>(
                delegate(ClrSyncManager manager)
     {
         manager.SetMethodInfo(instrMethod);
         manager.SyncVarAccess(o, mop);
         bool ret;
         try {
             ret = ro(o);
         } catch (Exception e) {
             manager.CommitSyncVarAccess();
             throw e;
         };
         manager.CommitSyncVarAccess();
         return ret;
     },
                delegate()
     {
         return ro(o);
     }));
 }