gpt4 book ai didi

c# - 在 C# 中处理退出无限循环的正确方法

转载 作者:行者123 更新时间:2023-11-30 14:39:48 25 4
gpt4 key购买 nike

在我的应用程序中,我发现需要有无限的 while 循环,主要是为了连续地做一些重复的 Action ,除非另一个事件发生,所以我正在做的是

while(chkFlag)
{
//do something here which takes around 30 seconds
}

然后在其他一些事件中说按下按钮停止我做的循环

chkFlag = false;

现在这可以工作了,但问题是这不会立即停止循环,因为只有在循环完全执行后才会检查 chkFlag。那么谁能告诉我如何根据事件立即退出循环。

最佳答案

“阻塞”代码可能应该移到某种工作线程中(可以终止和/或丢弃结果)。如果使用 BackgroundWorker (推荐,因为这很简单),内置支持处理取消操作。

然后可以将循环移动到 BackgroundWorker 内部,或者 worker 的完成 (RunWorkerCompleted) 事件可以触发下一个 worker 启动(这会导致隐式循环)。

快乐编码。


有更多“积极”的方式来终止/发信号通知线程;但提出这些需要比目前更多的信息。

关于c# - 在 C# 中处理退出无限循环的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067262/

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