gpt4 book ai didi

WPF 从主线程以外的其他线程截取屏幕截图

转载 作者:行者123 更新时间:2023-12-01 04:21:37 29 4
gpt4 key购买 nike

我有一个线程可以监听 WPF 应用程序的命令。如果 WPF 应用程序收到截取屏幕截图的命令,则该任务将移交给“screenshotService”。我发现一些代码可以在互联网上的某个地方截取屏幕截图,似乎可以工作,但我还没有想通......我无法从另一个线程截取这个屏幕截图,给出了这个异常(exception):

{"This API was accessed with arguments from the wrong context."}

剩下要说的是,我的screenshot方法的签名从UI中获取了一个UIElement,这个网格总是相同的,并传递给takeScreenshot方法的构造函数。

我将如何四处走动并截取此屏幕截图?

最佳答案

使用 Dispatcher 或 BackgroundWorker 来完成这项工作:

ThreadStart start = delegate()
{
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action<string>(TakeScreenshot),
"From Other Thread");
};

new Thread(start).Start();







BackgroundWorker _backgroundWorker = new BackgroundWorker();

_backgroundWorker.DoWork += _backgroundWorker_TakeScreenshot;


_backgroundWorker.RunWorkerAsync(5000);

void _backgroundWorker_TakeScreenshot(object sender, DoWorkEventArgs e)
{
}

关于WPF 从主线程以外的其他线程截取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456928/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com