简单的搜索DoEvents会带来很多结果,这些结果基本上会导致:
DoEvents是邪恶的.不要使用它.请改用线程.
一般引用的原因是:
但是一些值得注意的Win32功能,例如TrackPopupMenu并DoDragDrop 执行自己的消息处理以保持UI响应,就像这样DoEvents.
然而,这些问题似乎都没有遇到过这些问题(性能,再入等等).
他们是如何做到的呢?他们如何避免引用的问题DoEvents?(或者做他们?)
是否可以在不使用DoEvents的情况下取消VB6.0中长时间运行的进程?
例如:
for i = 1 to someVeryHighNumber
' Do some work here '
...
if cancel then
exit for
end if
next
Sub btnCancel_Click()
cancel = true
End Sub
Run Code Online (Sandbox Code Playgroud)
我假设我需要一个"DoEvents"才能"如果取消那么......"还有更好的方法吗?有一阵子了...
我编程使用不同的随机函数生成十六进制的键,并将其写入文本文件.我只有两个cmd按钮和状态栏,显示当前时间和进程状态.现在单击cmd按钮进行密钥生成时,表单将被锁定,所有其他活动都将暂停,即使时间暂停,直到进程结束.我甚至不能中断这个过程.我想尽可能使用线程来解决这个问题.我该怎么做请建议.否则,如果有任何其他方法来解决这个问题,请建议.
谢谢你期待有价值的帮助
我有一个VB6应用程序,处理非常非常长的时间.直接杀死它是不可行的,所以我想在VB6应用程序中设置某种标志.如果在我的C#应用程序中我决定将其关闭,我想切换此标志以让VB6应用程序知道已请求关闭.现在,我还需要一些命名的东西,因为将有几个VB6应用程序作为activex exes旋转.有谁知道如何实现这样的东西?工作流程如下
C#app - 在单独的线程中旋转多个VB6 activex.exes,用某些东西初始化应用程序(以下称为标志)我可以在C#中更改,并调用DoStuff命令,这需要很长时间才能返回.
VB6 - 获取带有标志的initialize命令.DoStuff被调用.在DoStuff循环中,它检查标志是否仍然设置.
C# - 通过将标志设置为另一个状态来终止项目
有任何想法吗?