gpt4 book ai didi

c# - 在新进程中运行时窗口标题中的 "Not Responding"

转载 作者:可可西里 更新时间:2023-11-01 08:05:12 26 4
gpt4 key购买 nike

我有一个长时间运行的方法,必须在 UI 线程上运行。(Devex - gridView.CopyToClipboard())

我不需要 UI 在复制时响应,我添加了启动画面,这样用户就不会感到无聊。

当我运行这个程序时一切正常。

当我运行另一个程序时,问题就开始了,而这个程序又启动了一个新进程并在其上运行该程序。复制标题几秒钟后读取(无响应)并且鼠标光标显示忙碌,它当然会在几秒钟内清除但我想摆脱它因为它给用户一种误解程序的感觉有问题。

有什么方法可以设置我创建的进程的“超时”吗?

编辑:

主程序调用如下代码:

fillsProcess = new Process();
fillsProcess.StartInfo.FileName = Application.ExecutablePath;
fillsProcess.Start();

在 fillsProcess 中,当单击某个按钮时,将调用以下代码:

gridViewToCopy.CopyToClipboard();

这行代码需要一段时间来处理,几秒钟后 fillsProcess 的窗口看起来没有响应,因为此方法在 UI 线程上运行..

编辑第二个:

显然(而且真的很容易理解)

gridViewToCopy.CopyToClipboard();

不是导致此问题的唯一方法。许多 Devex 方法必须在 UI 线程上运行(例如数据排序、数据过滤)

因此,感谢任何提供特定解决方案(有效或无效)的人,但我原来的问题再次弹出:

是否有任何方法可以更改超时时间或以某种方式控制整个“无响应”惨败?

最佳答案

您可以使用 DisableProcessWindowsGhosting win32 函数:

[DllImport("user32.dll")]
public static extern void DisableProcessWindowsGhosting();

这实际上并没有阻止窗口卡住,而是阻止了标题中的“Not Respongind”文本。

关于c# - 在新进程中运行时窗口标题中的 "Not Responding",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095162/

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