Clipboard.SetContent()远程过程调用失败

时间:2019-09-23 07:34:35

标签: uwp clipboard procedure

在我的UWP应用程序中,当我尝试在Clipboard中设置内容时,出现以下异常。

目标SDK版本:Windows 10 SDK 1903版本

  

System.Exception:远程过程调用失败。 (来自的例外   HRESULT:0x800706BE)位于   Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(DataPackage   内容)

public static void CopyTextToClipboard(string textToCopy)
{          
    if (!string.IsNullOrEmpty(textToCopy))
    {
       var dataPackage = new DataPackage();
       dataPackage.RequestedOperation = DataPackageOperation.Copy;
       dataPackage.SetText(textToCopy.Trim().Replace(" ", string.Empty));
       Clipboard.SetContent(dataPackage);
    }
}

1 个答案:

答案 0 :(得分:0)

Clipboard.SetContent必须从UI线程中调用。如果要从其他线程执行此代码,则必须将Clipboard调用包装在Dispatcher.RunAsync中:

await CoreApplication.MainView.Dispatcher.RunAsync(
    CoreDispatcherPriority.Normal,
    () => Clipboard.SetContent(dataPackage));

另外,请注意,这意味着Clipboard也不能从后台服务中使用(它没有关联的UI线程)。