У меня есть asyn c Библиотека для обработки аудиофайлов. Кроме того, я хочу предложить эти методы через отдых. Поэтому я сделал MVC проект WebApi. Для запуска библиотеки требуется некоторое время, поэтому я добавил класс, который предлагает способ инициализации и предоставляет основной объект библиотеки.
public static class MusicHandler
{
public static MusicCapture.MusicCapture MusicCapture;
public static void init()
{
MusicCapture = new MusicCapture.MusicCapture("D:\\Temp", "D:\\test", "E:\\FingerPrintDB2.ss");
MusicCapture.Start();
}
}
Я запускаю его в Application_Start ()
protected void Application_Start()
{
MusicHandler.init();
}
Теперь, когда мой метод init содержит несколько асин c вызовов, подобных этому:
var hashedFingerprints = command.Hash().Result;
Программа просто пропустит эти строки. Они не исполняются за все, что я могу сказать. То же самое происходит, когда я вызываю любой из объектов asyn c методами из моих конечных точек REST. Когда я запускаю библиотеку не из ASP .NET / MVC, код работает безупречно.
Я нашел несколько комментариев, в которых говорилось, что это проблема из-за взаимоблокировок, но не было ни совета, ни кода, как их избежать. это / сделать эту работу.
Заранее спасибо.