gpt4 book ai didi

C# 在按下按钮时跳出循环

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

我有一个简单的 C# foreach 循环,如何在按下按钮时跳出循环?它不在 backgroundWorker 线程中,所以我不能使用 backgroundWorker.Cancellation Pending。

最佳答案

在表单中创建一个 bool 标志。将事件处理程序附加到按钮单击事件,并在事件处理程序中将标志设置为 true。

检查循环中的标志,如果为真,则调用“break”。 (更好的选择是使用 while 循环而不是 for 循环,并在 while 条件下检查标志)

显然,for 循环需要在某种形式的后台线程上运行,否则 GUI 将无法响应。如果您不知道如何执行此操作,请查看 ThreadPool.QueueUserWorkItemBackgroundWorker .如果您确实使用了 BackgroundWorker,则可以使用内置的 CancelAsync() 方法,而不是编写您自己的取消标志。

[编辑:正如其他人(下文)所指出并进行了更深入的讨论 herehere ;您确实需要在访问 bool 之前锁定或将其标记为 volatile]

[不要忘记在开始循环之前设置标志的正确状态。]

关于C# 在按下按钮时跳出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1221839/

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