44using System . Runtime . CompilerServices ;
55using System ;
66using static Microsoft . VisualStudio . Threading . JoinableTaskFactory ;
7- using System . Threading ;
7+ using static Microsoft . VisualStudio . Threading . AwaitExtensions ;
88
99namespace GitHub . Helpers
1010{
@@ -62,7 +62,7 @@ public AwaitableWrapper(MainThreadAwaitable awaitable)
6262
6363 public AwaitableWrapper ( TaskScheduler scheduler )
6464 {
65- getAwaiter = ( ) => new AwaiterWrapper ( new BackgroundThreadAwaiter ( scheduler ) ) ;
65+ getAwaiter = ( ) => new AwaiterWrapper ( new TaskSchedulerAwaiter ( scheduler ) ) ;
6666 }
6767
6868 public IAwaiter GetAwaiter ( ) => getAwaiter ( ) ;
@@ -88,7 +88,7 @@ public AwaiterWrapper(MainThreadAwaiter awaiter)
8888 getResult = ( ) => awaiter . GetResult ( ) ;
8989 }
9090
91- public AwaiterWrapper ( BackgroundThreadAwaiter awaiter )
91+ public AwaiterWrapper ( TaskSchedulerAwaiter awaiter )
9292 {
9393 isCompleted = ( ) => awaiter . IsCompleted ;
9494 onCompleted = c => awaiter . OnCompleted ( c ) ;
@@ -101,34 +101,5 @@ public AwaiterWrapper(BackgroundThreadAwaiter awaiter)
101101
102102 public void GetResult ( ) => getResult ( ) ;
103103 }
104-
105- struct BackgroundThreadAwaiter : INotifyCompletion
106- {
107- readonly TaskScheduler scheduler ;
108-
109- public bool IsCompleted
110- {
111- get
112- {
113- bool isThreadPoolThread = Thread . CurrentThread . IsThreadPoolThread ;
114- return ( scheduler == TaskScheduler . Default & isThreadPoolThread ) || ( scheduler == TaskScheduler . Current && TaskScheduler . Current != TaskScheduler . Default ) ;
115- }
116- }
117-
118- public BackgroundThreadAwaiter ( TaskScheduler scheduler )
119- {
120- Guard . ArgumentNotNull ( scheduler , nameof ( scheduler ) ) ;
121- this . scheduler = scheduler ;
122- }
123-
124- public void OnCompleted ( Action continuation )
125- {
126- Task . Factory . StartNew ( continuation , CancellationToken . None , TaskCreationOptions . None , scheduler ) ;
127- }
128-
129- public void GetResult ( )
130- {
131- }
132- }
133104 }
134105}
0 commit comments