gpt4 book ai didi

c# - 如何在不卡住我的 UI 的情况下使用 ManualResetEvent

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:13 27 4
gpt4 key购买 nike

我想使用 ManualResetEvent 而不是 Thread.Sleep 来防止我的 UI 被释放。

这是我试过的:

private ManualResetEvent manualResetEvent = null;

private void Form1_Load(object sender, EventArgs e)
{
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
}

手术后我想等 5 秒:

manualResetEvent.WaitOne(5000);

我的问题是我的 UI 仍然死机......

最佳答案

现在情况更加明朗了。

在这种情况下,您可以在示例中使用 backgroundworker,在您的表单中定义一个 backgroundworker。

当计时器事件 ID 触发时,您可以使用

'assume that backgroundworker is named "BBC"
'support cancellation task
BBC.WorkerSupportsCancellation = True
'enable report progress
BBC.WorkerReportsProgress = True
'run it
BBC.RunWorkerAsync()

当它在 BBC_RunWorkerCompleted 或您对该方法的委托(delegate)中完成时,您可以在 trhead 安全模式下显示一条消息。

这就是您的全部,不会卡住,您也可以使用您的应用程序等。我将此方法用于长任务或多项任务,如删除等。您必须将自己的方法/逻辑设置为查看您的文件是否已创建到文件夹中。

关于c# - 如何在不卡住我的 UI 的情况下使用 ManualResetEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22936508/

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