使用后台任务设置剪贴板内容[Windows 10] [UWP]

时间:2015-08-11 13:14:51

标签: c# uwp

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

E.g。后台任务中的以下代码抛出异常:

  

不支持从MTA激活单线程类(HRESULT异常:0x8000001D)。

代码:

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

1 个答案:

答案 0 :(得分:3)

将内容保存到某处,并在应用即将恢复时将字符串分配给剪贴板。

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();
}