Output.analysis = ожидание задачи; возврат исключения
всем привет
Я тестирую новый пример когнитивной службы Microsoft,
приведенный ниже код :
GitHub - microsoft/Cognitive-Samples-VideoFrameAnalysis: библиотека с примерами приложений для непрерывного анализа живого видео с использованием API Microsoft Cognitive Services Vision.[^]
когда я пытаюсь это сделать он возвращает исключение в классе FrameGrabber
в частности на линии 518 :
выход.Анализ = ожидание задачи;
анализ является нулевым, однако он объявлен в строке 78 как :
public AnalysisResultType Analysis { get; set; } = default(AnalysisResultType);
есть какие-нибудь предложения по запуску образца?
Что я уже пробовал:
/// <summary> Executes the analysis operation asynchronously, then returns either the /// result, or any exception that was thrown. </summary> /// <param name="frame"> The frame. </param> /// <returns> A Task<NewResultEventArgs> </returns> protected async Task<NewResultEventArgs> DoAnalyzeFrame(VideoFrame frame) { CancellationTokenSource source = new CancellationTokenSource(); // Make a local reference to the function, just in case someone sets // AnalysisFunction = null before we can call it. var fcn = AnalysisFunction; if (fcn != null) { NewResultEventArgs output = new NewResultEventArgs(frame); var task = fcn(frame); LogMessage("DoAnalysis: started task {0}", task.Id); try { if (task == await Task.WhenAny(task, Task.Delay(AnalysisTimeout, source.Token))) { output.Analysis = await task; source.Cancel(); } else { output.TimedOut = true; } } catch (Exception ae) { output.Exception = ae; } LogMessage("DoAnalysis: returned from task {0}", task.Id); return output; } else { return null; } }
George Swan
Я бы не стал утруждать себя созданием инфраструктуры отмены для задачи, которая просто топчется на месте. Я просто позволю ему угаснуть.
George Swan
Когда асинхронный метод отменяется в режиме отладки с включенной опцией "только мой код", Visual Studio прерывается и создает исключение. Попробуйте запустить его в режиме выпуска и посмотрите, решит ли это проблему. Если это так, снимите флажок "Включить только мой код" в разделе Инструменты, Параметры, отладка, Общие сведения.