gpt4 book ai didi

c# - 表单不可用并且在循环进行时不更新

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:25 25 4
gpt4 key购买 nike

我有一个方法,其中有一个 for 循环。在 for 循环中,我想更新主窗体上的一些标签文本,但更改仅在循环结束后完成。

我试着在另一个线程上这样做:

Thread firstthread = new Thread(new ThreadStart(myMethod));
firstthread.Start();

当我这样做时,我得到了一个 InvalidOperationException 因为试图访问另一个线程上的控件或类似的东西。

当循环正在进行时,我应该如何从循环中更新主窗体上的标签(或其他控件)?

最佳答案

您应该使用 BackgroundWorker。将长时间运行的循环放在 DoWork 事件处理程序中;它将在后台线程中运行并且不会阻塞 UI 线程。您可以将 ReportProgress 设置为 true,然后将事件处理程序附加到它以允许您定期更新标签(或其他任何内容)。 ProgressReported 事件在 UI 线程中运行。您还可以向在 UI 线程中运行的 Completed 事件添加处理程序。

你可以看看MSDN page BackgroundWorker 的详细信息和代码示例。

关于c# - 表单不可用并且在循环进行时不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782933/

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