private async Task <TEntity> RemoteFetchAsync <TEntity>(RemoteEngine remote, Func <RemoteEngine, Task <TEntity> > fetch) { var delayTask = Task.Delay(DelayTime); var remoteFetchTask = fetch(remote); var tasks = new Task[] { delayTask, remoteFetchTask }; var t = await Task.WhenAny(tasks); if (t != delayTask && remoteFetchTask.Result != null) { return(remoteFetchTask.Result); } return(default);
private Task <ComicEntity> RemoteFetchChapterAsync(RemoteEngine remote, string url) { return(RemoteFetchAsync(remote, r => r.GetChaptersAsync(url))); }