У меня проблема с Полли, из-за которой поток зависает.
Как вы можете видеть под методом GetData () собирается сгенерировать исключение. Я хочу сделать, это перейти к Dostuff1 и 2, когда возникают исключения в методе GetData () в DoStuff (); Но похоже, что после попытки с Полли он просто застрял и ничего не делает ...
Как я могу это исправить?
private async Task StartUp()
{
await DoStuff());
// await next task DoStuff1();
// await next task DoStuff2();
}
private async Task DoStuff()
{
var data= await Task.WhenAll(Task.Run(() => GetData()));
// Do stuff with the data
}
private async Task<Data> GetData()
{
//read filepaths from file.
var tasks = filePaths
.Select(f => polly.MyPolicy().Execute(() => ReadDataFromCSV()))
.ToArray();
Return await tasks;
}
private Dictionary<string, DateTime?> ReadDataFromCSV()
{
///Throw exception....
}
public PolicyForGetData()
{
return Policy
.Handle<Exception>()
.WaitAndRetry(
retryCount: 2,
sleepDurationProvider: t => TimeSpan.FromSeconds(5),
onRetry: (ex, t, i, c) => {
Console.WriteLine(ex.Message);
}
);
}