如何将 CoreDispatcher 转换为 AudioGraph 事件处理程序的 DispatcherQueue

问题描述 投票:0回答:1

由于 CoreDispatcher 在 WinUI 3 Windows App SDK 中已被弃用并被 DispatcherQueue 取代,那么如何转换以下代码以正确使用 DispatcherQueue?

fileInputNode.FileCompleted += FileInputNodeOnFileCompleted;

private async void FileInputNodeOnFileCompleted(AudioFileInputNode sender, object args)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        sender.Stop();               
        sender.Reset();        
    });
}

更新代码使用DispatcherQueue的另一个原因是,在代码中使用CoreDispatcher时,出现以下错误:

未将对象引用设置为对象的实例。

c# winui-3 winui audiograph
1个回答
0
投票

没什么复杂的。

private void FileInputNodeOnFileCompleted(AudioFileInputNode sender, object args)
{
    DispatcherQueue.GetForCurrentThread().TryEnqueue(() =>
    {
        sender.Stop();
        sender.Reset();
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.