Ejemplo n.º 1
0
 public delegate void FuncOOO <T1, T2, T3>(out T1 arg1, out T2 arg2, out T3 arg3);    public static void LockedCall <T1, T2, T3>(string name, FuncOOO <T1, T2, T3> func, out T1 arg1, out T2 arg2, out T3 arg3)
 {
     while (true)
     {
         try { var mutex = new Mutex(false, name); mutex.WaitOne();            func(out arg1, out arg2, out arg3); mutex.ReleaseMutex(); } catch (AbandonedMutexException) { }
     }
 }
Ejemplo n.º 2
0
 public delegate U    FuncOOO <T1, T2, T3, U>(out T1 arg1, out T2 arg2, out T3 arg3);    public static U    LockedCall <T1, T2, T3, U>(string name, FuncOOO <T1, T2, T3, U> func, out T1 arg1, out T2 arg2, out T3 arg3)
 {
     while (true)
     {
         try { var mutex = new Mutex(false, name); mutex.WaitOne(); U result = func(out arg1, out arg2, out arg3); mutex.ReleaseMutex(); return(result); } catch (AbandonedMutexException) { }
     }
 }