You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
3 years ago
|
using System;
|
||
|
using System.Diagnostics;
|
||
|
using System.Runtime.CompilerServices;
|
||
|
using System.Security;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
public struct AsyncETTaskCompletedMethodBuilder
|
||
|
{
|
||
|
// 1. Static Create method.
|
||
|
[DebuggerHidden]
|
||
|
public static AsyncETTaskCompletedMethodBuilder Create()
|
||
|
{
|
||
|
AsyncETTaskCompletedMethodBuilder builder = new AsyncETTaskCompletedMethodBuilder();
|
||
|
return builder;
|
||
|
}
|
||
|
|
||
|
// 2. TaskLike Task property(void)
|
||
|
public ETTaskCompleted Task => default;
|
||
|
|
||
|
// 3. SetException
|
||
|
[DebuggerHidden]
|
||
|
public void SetException(Exception e)
|
||
|
{
|
||
|
ETTask.ExceptionHandler.Invoke(e);
|
||
|
}
|
||
|
|
||
|
// 4. SetResult
|
||
|
[DebuggerHidden]
|
||
|
public void SetResult()
|
||
|
{
|
||
|
// do nothing
|
||
|
}
|
||
|
|
||
|
// 5. AwaitOnCompleted
|
||
|
[DebuggerHidden]
|
||
|
public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : INotifyCompletion where TStateMachine : IAsyncStateMachine
|
||
|
{
|
||
|
awaiter.OnCompleted(stateMachine.MoveNext);
|
||
|
}
|
||
|
|
||
|
// 6. AwaitUnsafeOnCompleted
|
||
|
[DebuggerHidden]
|
||
|
[SecuritySafeCritical]
|
||
|
public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : ICriticalNotifyCompletion where TStateMachine : IAsyncStateMachine
|
||
|
{
|
||
|
awaiter.UnsafeOnCompleted(stateMachine.MoveNext);
|
||
|
}
|
||
|
|
||
|
// 7. Start
|
||
|
[DebuggerHidden]
|
||
|
public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine
|
||
|
{
|
||
|
stateMachine.MoveNext();
|
||
|
}
|
||
|
|
||
|
// 8. SetStateMachine
|
||
|
[DebuggerHidden]
|
||
|
public void SetStateMachine(IAsyncStateMachine stateMachine)
|
||
|
{
|
||
|
}
|
||
|
}
|
||
|
}
|