public bool TryTransform(string input, out object transformed) { if (TryCreateUrl(input, out var url)) { var lazy = new AsyncLazy <Image <Rgba32> >(async() => { var client = new RestClient($"{url.Scheme}://{url.Authority}"); var request = new RestRequest(url.AbsolutePath); var response = await client.ExecuteGetTaskAsync(request); if (response.StatusCode == HttpStatusCode.OK && ValidMimeTypes.Contains(response.ContentType)) { return(Image.Load(response.RawBytes)); } return(null); }); lazy.Start(); transformed = lazy; return(true); } transformed = null; return(false); }
public void StartAllTasks() { _baseItems.Start(); _skills.Start(); _statTranslators.Start(); _characterBaseStats.Start(); _monsterBaseStats.Start(); }
public async Task AsyncLazy_StartCallsFunc() { var tcs = new TaskCompletionSource<int>(); Func<int> func = () => { tcs.SetResult(A.Dummy<int>()); return A.Dummy<int>(); }; var lazy = new AsyncLazy<int>(func); lazy.Start(); var res = await tcs.Task; }
public async Task AsyncLazy_Start_CallsFunc() { var tcs = new TaskCompletionSource<bool>(); Func<int> func = () => { tcs.SetResult(true); return 13; }; var lazy = new AsyncLazy<int>(func); lazy.Start(); await tcs.Task; }
public async Task AsyncLazy_Start_CallsFunc() { var tcs = new TaskCompletionSource <object>(); Func <Task <int> > func = () => { tcs.SetResult(null); return(Task.FromResult(13)); }; var lazy = new AsyncLazy <int>(func); lazy.Start(); await tcs.Task; }
public async Task AsyncLazy_Start_CallsFunc() { TaskCompletionSource <object> tcs = TaskCompletionSourceExtensions.CreateAsyncTaskSource <object>(); Func <Task <int> > func = () => { tcs.SetResult(null); return(Task.FromResult(13)); }; AsyncLazy <int> lazy = new AsyncLazy <int>(func); lazy.Start(); await tcs.Task; }
public async Task AsyncLazy_Start_CallsFunc() { var tcs = new TaskCompletionSource <bool>(); Func <int> func = () => { tcs.SetResult(true); return(13); }; var lazy = new AsyncLazy <int>(func); lazy.Start(); await tcs.Task; }
public void AsyncLazy_Start_CallsFunc() { AsyncContext.Run(async () => { var tcs = new TaskCompletionSource(); Func<int> func = () => { tcs.SetResult(); return 13; }; var lazy = new AsyncLazy<int>(func); lazy.Start(); await tcs.Task; }); }
public void AsyncLazy_Start_CallsFunc() { AsyncContext.Run(async() => { var tcs = new TaskCompletionSource(); Func <int> func = () => { tcs.SetResult(); return(13); }; var lazy = new AsyncLazy <int>(func); lazy.Start(); await tcs.Task; }); }
public NPMManagerService(IHostingEnvironment env) { this.env = env; // see "cached values" http://blog.stephencleary.com/2013/01/async-oop-3-properties.html packageJson = new AsyncLazy <JObject>(async() => { return(await Task.Run <JObject>(() => JObject.Parse(File.ReadAllText($"{env.ContentRootPath}/ClientApp/package.json")))); }); packageJson.Start(); externals = new AsyncLazy <List <NPMExternal> >(async() => { return(await Task.Run <List <NPMExternal> >(() => { return JsonConvert.DeserializeObject <List <NPMExternal> >(File.ReadAllText($"{env.ContentRootPath}/Assets/Json/NPMExternals.json")); })); }); externals.Start(); // this should be built on a lazy refresh cache, for now just cache indefinitely or until it grows too large // see https://github.com/aspnet/Extensions/issues/769 this.versionCache = new MemoryCache(new MemoryCacheOptions { SizeLimit = 1024 }); }
public static async Task <ExternalDataProviders> GetExternalDataProviders() => await _instance.Start();