Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async Task<List<Data>> GetDataWithTimeoutAsync(InputData data, int timeout)
- {
- List<Data> resultData = new List<Data>;
- await Task.WhenAny(Task.Run(async () =>
- {
- resultData.Add(SomeWork(data));
- }),
- Task.Delay(timeout));
- return resultData;
- }
- public async Task<List<List<Data>>> GetAllDataAsync()
- {
- var resultTasks = new ConcurrentBag<Task<List<Data>>>();
- var firtsTask = GetDataWithTimeoutAsync(firstInputData, firtsTimeout);
- var secondTask = GetDataWithTimeoutAsync(secondInputData, secondTimeout);
- var thirdTask = GetDataWithTimeoutAsync(thirdInputData, thirdTimeout);
- resultTasks.Add(Task.Run(() => firtsTask));
- resultTasks.Add(Task.Run(() => secondTask));
- resultTasks.Add(Task.Run(() => thirdTask));
- await Task.WhenAll(resultTasks);
- var result = resultTasks.Select(t => t.Result).ToList();
- return result;
- }
- await Task.WhenAny(Task.Run(async () =>
- {
- resultData.Add(SomeWork(data));
- }),
- Task.Delay(timeout));
- await Task.Delay(timeout).ContinueWith( async (t) =>
- {
- resultData.Add(SomeWork(data));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement