相关疑难解决方法(0)

如何使用DoEvents()而不是"邪恶"?

简单的搜索DoEvents会带来很多结果,这些结果基本上会导致:

DoEvents是邪恶的.不要使用它.请改用线程.

一般引用的原因是:

  • 重新入侵问题
  • 表现不佳
  • 可用性问题(例如,在禁用的窗口上拖放)

但是一些值得注意的Win32功能,例如TrackPopupMenuDoDragDrop 执行自己的消息处理以保持UI响应,就像这样DoEvents.
然而,这些问题似乎都没有遇到过这些问题(性能,再入等等).

他们是如何做到的呢?他们如何避免引用的问题DoEvents?(或者他们?)

windows winapi doevents visual-c++ winforms

23
推荐指数
1
解决办法
8643
查看次数

在没有DoEvents的情况下在VB6.0中取消长时间运行的进程?

是否可以在不使用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"才能"如果取消那么......"还有更好的方法吗?有一阵子了...

vb6

21
推荐指数
4
解决办法
1万
查看次数

在vb6中编程时使用线程

我编程使用不同的随机函数生成十六进制的键,并将其写入文本文件.我只有两个cmd按钮和状态栏,显示当前时间和进程状态.现在单击cmd按钮进行密钥生成时,表单将被锁定,所有其他活动都将暂停,即使时间暂停,直到进程结束.我甚至不能中断这个过程.我想尽可能使用线程来解决这个问题.我该怎么做请建议.否则,如果有任何其他方法来解决这个问题,请建议.

谢谢你期待有价值的帮助

vb6 multithreading

1
推荐指数
1
解决办法
2万
查看次数

为vb6应用程序制作C#kill事件?

我有一个VB6应用程序,处理非常非常长的时间.直接杀死它是不可行的,所以我想在VB6应用程序中设置某种标志.如果在我的C#应用​​程序中我决定将其关闭,我想切换此标志以让VB6应用程序知道已请求关闭.现在,我还需要一些命名的东西,因为将有几个VB6应用程序作为activex exes旋转.有谁知道如何实现这样的东西?工作流程如下

C#app - 在单独的线程中旋转多个VB6 activex.exes,用某些东西初始化应用程序(以下称为标志)我可以在C#中更改,并调用DoStuff命令,这需要很长时间才能返回.

VB6 - 获取带有标志的initialize命令.DoStuff被调用.在DoStuff循环中,它检查标志是否仍然设置.

C# - 通过将标志设置为另一个状态来终止项目

有任何想法吗?

c# vb6 interop

0
推荐指数
1
解决办法
2300
查看次数

标签 统计

vb6 ×3

c# ×1

doevents ×1

interop ×1

multithreading ×1

visual-c++ ×1

winapi ×1

windows ×1

winforms ×1