Add UniTask.Post

pull/115/head
neuecc 2020-06-19 16:42:05 +09:00
parent d6a0563319
commit 5ed943bca2
2 changed files with 17 additions and 2 deletions

View File

@ -9,7 +9,7 @@ namespace Cysharp.Threading.Tasks.Internal
{ {
const int MaxArrayLength = 0X7FEFFFFF; const int MaxArrayLength = 0X7FEFFFFF;
const int InitialSize = 16; const int InitialSize = 16;
readonly PlayerLoopTiming timing; readonly PlayerLoopTiming timing;
SpinLock gate = new SpinLock(); SpinLock gate = new SpinLock();
@ -173,7 +173,14 @@ namespace Cysharp.Threading.Tasks.Internal
var action = actionList[i]; var action = actionList[i];
actionList[i] = null; actionList[i] = null;
action(); try
{
action();
}
catch (Exception ex)
{
UnityEngine.Debug.LogException(ex);
}
} }
{ {

View File

@ -44,6 +44,14 @@ namespace Cysharp.Threading.Tasks
return new ReturnToMainThread(timing); return new ReturnToMainThread(timing);
} }
/// <summary>
/// Queue the action to PlayerLoop.
/// </summary>
public static void Post(Action action, PlayerLoopTiming timing = PlayerLoopTiming.Update)
{
PlayerLoopHelper.AddContinuation(timing, action);
}
#endif #endif
public static SwitchToThreadPoolAwaitable SwitchToThreadPool() public static SwitchToThreadPoolAwaitable SwitchToThreadPool()