我正在使用通用Windows 10应用程序。目前,我有一个后台任务,一旦用户收到通知,就会触发该任务。此BG任务的目的是复制通知的内容。问题在于Clipboard.setcontent方法似乎是单线程的,而不是多线程的BG任务。我试过使用corewindow调度程序,但这没用,我也试过使用任务。有人可以指出我的解决方案吗?

例如。后台任务中的以下代码将引发异常:



代码:

var dataPackage = new DataPackage { RequestedOperation = DataPackageOperation.Copy };
dataPackage.SetText("Hello World!");
Clipboard.SetContent(dataPackage);

最佳答案

将内容保存在某处,然后在应用要恢复运行时将字符串分配给剪贴板。

await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    var dataPackage = new DataPackage { RequestedOperation = DataPackageOperation.Copy };
    dataPackage.SetText("Hello World!");
    Clipboard.SetContent(dataPackage);

    getText();
});

private async void getText()
{
    string t = await Clipboard.GetContent().GetTextAsync();
}

10-07 19:47