我有一个带有列表视图的表单,用户也可以添加任务。然后用户可以单击一个按钮,然后应用程序会逐个执行列表视图中的每个任务并执行它。
这些任务更像是实际完成任务的指令。我通过在其中包含一个循环的类来执行此操作,该循环遍历每个项目,然后它完成我为每个项目(指令)设置的任务。为了开始解析,我在调用该函数的表单上有一个按钮。IE: RunTask(listview1, 1) - 基本上所有这些都启动了我在课堂上的循环,指定了列表视图和从哪个项目开始。
除了屏幕锁定外,一切都很完美,所以我无法实现停止功能来阻止应用程序解析这些列表视图项目。我只是不明白如何在没有交叉线程的情况下实现这一点,因为我想单独运行的线程将始终访问此列表视图。重新设计程序以摆脱列表视图是不可行的。我尝试了 application.doevents 虽然它引起了太多人的错误。我一直在研究如何解决这个问题,但我不知道。希望有人能有所启发。
此外,我已经添加了一个后台工作人员来解决这个问题,尽管我显然必须设置 checkforillegalcrossthreadcalls = false 并且我知道这并不聪明。