4 using System.Collections.Generic;
5 using System.Runtime.CompilerServices;
7 namespace SiliconStudio.Core.MicroThreading
11 private static List<ChannelMicroThreadAwaiter<T>> pool =
new List<ChannelMicroThreadAwaiter<T>>();
13 private bool isCompleted =
false;
16 internal Action Continuation;
25 var index = pool.Count - 1;
26 var lastItem = pool[index];
29 lastItem.MicroThread = microThread;
50 Continuation = continuation;
55 Continuation = continuation;
67 if (pool.Count < 4096)
81 public bool IsCompleted
83 get {
return isCompleted; }
84 set { isCompleted = value; }
Represents an execution context managed by a Scheduler, that can cooperatively yield execution to ano...
static ChannelMicroThreadAwaiter< T > New(MicroThread microThread)
ChannelMicroThreadAwaiter(MicroThread microThread)
void UnsafeOnCompleted(Action continuation)
void OnCompleted(Action continuation)
ChannelMicroThreadAwaiter< T > GetAwaiter()