(エッセンス)2020年6月26日C#クラスライブラリ非同期転送支援クラス
5325 ワード
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Core.Util
{
///
/// , ASP.NET
/// https://cpratt.co/async-tips-tricks/
///
public static class AsyncHelper
{
private static readonly TaskFactory _myTaskFactory =
new TaskFactory(CancellationToken.None, TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default);
///
///
///
///
public static void RunSync(Func<Task> func)
{
//Unwra task
_myTaskFactory.StartNew(func).Unwrap().GetAwaiter().GetResult();
}
///
///
///
///
///
///
public static TResult RunSync<TResult>(Func<Task<TResult>> func)
{
//Unwra task
return _myTaskFactory.StartNew(func).Unwrap().GetAwaiter().GetResult();
}
}
}