template<typename CallableType>
inline auto PX_GameThread_SyncRun(CallableType&& Callable) -> decltype(Forward<CallableType>(Callable)())
{
if (IsInGameThread())
{
return Callable();
}
else
{
auto retval = Async(EAsyncExecution::TaskGraphMainThread, Forward<CallableType>(Callable));
return retval.Get();
}
}
使用方法:
PX_GameThread_SyncRun([&]() {
//添加需要在游戏线程中运行的代码
});