我想运行一个循环(Do,For ....)但我希望程序即使在该循环运行时也可以访问。我的意思是,我希望程序运行循环,但在运行循环时,能够单击表单中的任何内容或重新定位表单。
答案 0 :(得分:1)
虽然很多人会说这是坏事,邪恶和丑陋,但这会帮助你解决问题:
https://msdn.microsoft.com/de-de/library/system.windows.forms.application.doevents(v=vs.110).aspx
Application.DoEvents
另一个链接(解释说,DoEvents不是邪恶的):
http://blog.codinghorror.com/is-doevents-evil/
但是,有一些障碍:如果你有一个长时间运行的循环(假设对一个处理大量记录的数据库的查询)并且你想要这个,你应该在运行你的同时禁用所有“危险”按钮循环,即禁用所有其他,然后“取消”。当然,取消按钮只应在循环开始时启用,并在结束时禁用。
答案 1 :(得分:1)
Dim th as new System.Threading.Thread(sub()
'Run Loop here
End Sub)
th.Start()
我经常使用上面的代码:D
答案 2 :(得分:0)
对于这类问题,你应该看看多线程和异步编程。