コード例 #1
0
 internal ConfiguredTaskAwaiter(Task <TResult> task, bool continueOnSourceContext, InstanceReference instanceReference)
 {
     this.task = task;
     this.continueOnSourceContext = continueOnSourceContext;
     this.instanceReference       = instanceReference;
     this.thisSetter = null;
 }
コード例 #2
0
 public SynchronizationContextContinuation(Action action, SynchronizationContext ctx, InstanceReference instanceReference, IAsyncSetThis thisSetter)
 {
     this.action            = action;
     this.ctx               = ctx;
     this.instanceReference = instanceReference;
     this.thisSetter        = thisSetter;
 }
コード例 #3
0
ファイル: TaskAwaiter.cs プロジェクト: nguyenkien/api
		internal static void HandleOnCompleted (Task task, Action continuation, bool continueOnSourceContext, InstanceReference instanceReference, IAsyncSetThis thisSetter)
		{
			if (continueOnSourceContext && SynchronizationContext.Current != null) {
                task.ContinueWith(new SynchronizationContextContinuation(continuation, SynchronizationContext.Current, instanceReference, thisSetter));
			} else {
				task.ContinueWith (new ActionContinuation (continuation));
			}
		}
コード例 #4
0
            internal ConfiguredTaskAwaiter(Task task, bool continueOnSourceContext, InstanceReference instanceReference)
			{
				this.task = task;
				this.continueOnSourceContext = continueOnSourceContext;
                this.instanceReference = instanceReference;
                this.thisSetter = null;

                if (instanceReference != null)
                {
                    if (InstanceSynchronizationContext.GetRegisteredActivity(instanceReference) == null)
                    {
                        throw new TaskSchedulerException("ConfiguredTaskAwaiter called while static SynchronizationContext.SetSynchronizationContext(...) is not called.");
                    }
                }
			}
コード例 #5
0
            internal ConfiguredTaskAwaiter(Task task, bool continueOnSourceContext, InstanceReference instanceReference)
            {
                this.task = task;
                this.continueOnSourceContext = continueOnSourceContext;
                this.instanceReference       = instanceReference;
                this.thisSetter = null;

                if (instanceReference != null)
                {
                    if (InstanceSynchronizationContext.GetRegisteredActivity(instanceReference) == null)
                    {
                        throw new TaskSchedulerException("ConfiguredTaskAwaiter called while static SynchronizationContext.SetSynchronizationContext(...) is not called.");
                    }
                }
            }
コード例 #6
0
ファイル: TaskContinuation.cs プロジェクト: nguyenkien/api
        public SynchronizationContextContinuation(Action action, SynchronizationContext ctx, InstanceReference instanceReference, IAsyncSetThis thisSetter)
		{
			this.action = action;
			this.ctx = ctx;
            this.instanceReference = instanceReference;
            this.thisSetter = thisSetter;
		}
コード例 #7
0
 void IAsyncSetThisSetter.SetThisSetter(IAsyncSetThis thisSetter)
 {
     this.thisSetter = thisSetter;
 }
コード例 #8
0
 void IAsyncSetThisSetter.SetThisSetter(IAsyncSetThis thisSetter)
 {
     this.thisSetter = thisSetter;
 }
コード例 #9
0
 internal static void HandleOnCompleted(Task task, Action continuation, bool continueOnSourceContext, InstanceReference instanceReference, IAsyncSetThis thisSetter)
 {
     if (continueOnSourceContext && SynchronizationContext.Current != null)
     {
         task.ContinueWith(new SynchronizationContextContinuation(continuation, SynchronizationContext.Current, instanceReference, thisSetter));
     }
     else
     {
         task.ContinueWith(new ActionContinuation(continuation));
     }
 }