예제 #1
0
 private static void PreserveCultureUnsafeOnCompleted(ICriticalNotifyCompletion notifier,
                                                      Action continuation,
                                                      bool useSyncContext) {
   // Rely on the SyncContext to preserve culture if it exists
   if (useSyncContext && SynchronizationContext.Current != null) {
     notifier.UnsafeOnCompleted(continuation);
   } else {
     var preservedCulture = TaskAsyncHelper.SaveCulture();
     notifier.UnsafeOnCompleted(() => {
       TaskAsyncHelper.RunWithPreservedCulture(preservedCulture, continuation);
     });
   }
 }
예제 #2
0
 public TotemInternalCriticalAwaitable(Func<object, bool> isCompleted, Func<object, object> getResult, ICriticalNotifyCompletion inner)
 {
     _awaiter = new Awaiter(isCompleted, getResult, inner);
 }
예제 #3
0
 public MainThreadAwaitableWrapper(ICriticalNotifyCompletion criticalNotifyCompletion)
 {
     _wrapper = new MainThreadAwaiterWrapper(criticalNotifyCompletion);
 }
예제 #4
0
 public Awaiter(Func<object, bool> isCompleted, Func<object, object> getResult, ICriticalNotifyCompletion inner)
 {
     _isCompleted = isCompleted;
     _getResult = getResult;
     _inner = inner;
 }
예제 #5
0
 public MainThreadAwaiterWrapper(ICriticalNotifyCompletion criticalNotifyCompletion)
 {
     _criticalNotifyCompletion = criticalNotifyCompletion;
     IsCompleted = false;
 }