using System.Runtime.CompilerServices;
namespace Managing.Core
{
///
/// http://blogs.msdn.com/b/pfxteam/archive/2011/01/15/asynclazy-lt-t-gt.aspx
///
///
public class AsyncLazy : Lazy>
{
public AsyncLazy(Func valueFactory) :
base(() => Task.Factory.StartNew(valueFactory))
{ }
public AsyncLazy(Func> taskFactory) :
base(() => Task.Factory.StartNew(() => taskFactory()).Unwrap())
{ }
public TaskAwaiter GetAwaiter() { return Value.GetAwaiter(); }
}
}