由于 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时,出现以下错误:
未将对象引用设置为对象的实例。
没什么复杂的。
private void FileInputNodeOnFileCompleted(AudioFileInputNode sender, object args)
{
DispatcherQueue.GetForCurrentThread().TryEnqueue(() =>
{
sender.Stop();
sender.Reset();
});
}