Использую стороннюю библиотеку, в которой есть асинхронная функция. Это функция при некоторых условиях может работать некорректно и зависать "навечно". Пытался прерывать задачу с помощью токенов отмены, а также помещал функцию в отдельный поток и пытался "убивать" его Abort'ом. Ничего не помогает.
Разработчик библиотеки признает проблему, но решение к сожалению предложить никакое не может. А создавать альтернативу этой функции я не могу. Что же мне делать?)) Можно конечно игнорировать эти зависания и создавать новые потоки до тех пор, пока все не пройдет гладко. Но это ведь утечки, на сколько я понимаю. Не очень нравится такое.
Есть предположение, что можно создать отдельный процесс, который бы содержал только эту функцию. Тогда даже при зависании функции вроде бы не должно возникнуть проблем с завершением этого процесса. Пойдет ли такой вариант и какие возможные негативные последствия могут возникнуть при таком решении?
Собственно функция открывает в браузере вкладку с авторизацией, затем эту функция ждет, когда я авторизуюсь в ней. И только после этого работа продолжается. Однако если я проигнорирую авторизацию и закрою вкладку или браузер, то функция так и останется в ожидании, потому что, как я понял, она не в состоянии перехватить событие закрывающейся вкладки в браузере.
Вот и функция:
private SheetsService GetSheetsService()
{
UserCredential credential;
using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = "google-token";
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new string[] { SheetsService.Scope.Spreadsheets },
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
return new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В C# при вводе любого типа данных, в памяти всегда записывается только строка, я правильно понимаю? Дальше (по необходимости), нужно конвертировать...
Всем приветЯ начинающий разработчик, поэтому попытаюсь объяснить ситуацию как смогу
В некотором отчёте нужно отобразить три "кучки" покупателей (условно назовём их "золотыми", "серебряными" и "бронзовыми"):