Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Utils/TaskExtensions.cs
Markus Isberg df805574c4 Build 0.20.8.0
2022-11-25 19:56:30 +02:00

31 lines
754 B
C#

using System.Threading.Tasks;
namespace Barotrauma
{
static class TaskExtensions
{
public static bool TryGetResult<T>(this Task task, out T result)
{
if (task is Task<T> { IsCompletedSuccessfully: true } castTask)
{
result = castTask.Result;
return true;
}
result = default;
return false;
}
public static async Task<T> WaitForLoadingScreen<T>(this Task<T> task)
{
var result = await task;
#if CLIENT
while (GameMain.Instance.LoadingScreenOpen)
{
await Task.Delay((int)(1000 * Timing.Step));
}
#endif
return result;
}
}
}