首页 > 解决方案 > Clipboard.SetContent() 远程过程调用失败

问题描述

在我的 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);
    }
}

标签: uwpclipboardprocedure

解决方案


Clipboard.SetContent必须从 UI 线程调用。如果您从不同的线程执行此代码,则必须将Clipboard调用包装在 a 中Dispatcher.RunAsync

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

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


推荐阅读