VB6 Timer 控件是否创建单独的线程?

2023-11-28

有VB6吗Timer控件启动时创建一个单独的处理线程?


VB6 定时器控件不是某种在后台线程上运行的忙等待循环。他们根本就没有真正“跑”。

据我所知,当您设置 Enabled = True(或更改 Interval,如果它是 0)时,控件会调用 SetTimer() 。当您设置 Enabled = False(或将 Interval 设置为 0)时,它会调用 KillTimer()。

正常的 VB6 消息循环(当然在 UI 线程上运行)通过将传入的 WM_TIMER 消息分派到关联的 Timer 事件处理程序代码来处理它们。因此,事件处理程序中的代码在 UI 线程上运行,阻止进一步的消息处理,直到退出。间隔似乎被截断为无符号 16 位值 - 由于遗留原因(16 位 VB 和 Windows)?

任何类似程序中编码的繁忙等待循环(所有代码都在 UI 线程上运行)的内容当然都会阻止消息处理,从而给人一种计时器不会“触发”的错觉。由于 WM_TIMER 是低优先级消息,因此当您绑定 UI 线程时,它们不会在消息队列中深深堆积:

WM_TIMER 消息是低优先级消息。 GetMessage 和 PeekMessage 函数仅在没有其他消息时才发布此消息 较高优先级的消息位于线程的消息队列中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB6 Timer 控件是否创建单独的线程? 的相关文章

  • 为什么在构造函数中设置字段是(或不是)线程安全的?

    假设您有一个像这样的简单类 class MyClass private readonly int a private int b public MyClass int a int b this a a this b b public int
  • .NET 线程 - HttpWebRequest BeginGetResponse + AutoResetEvent

    我想知道这两种方法中哪种方法更好实施 我需要创建一个持续时间在 200 毫秒到 5 秒之间的 Web 请求 我需要 html 响应才能继续 因此需要在主线程上阻塞 第一种方法 string GetResponse HttpWebReques
  • C++11:atomic::compare_exchange_weak 是否支持非原始类型?

    我有以下代码 include
  • Objective C 中最好的多线程方法?

    我正在开发一个 iPad 应用程序 目前正在努力寻找多线程的最佳方法 让我用一个简化的例子来说明这一点 我有一个包含 2 个子视图的视图 一个目录选择器和一个包含所选目录中所有图像缩略图的图库 由于 下载 和生成这些缩略图可能需要相当长的时
  • 如何使用 VB6 调用 Windows shell 命令?

    究竟如何使用 VB6 才能像从命令行一样调用任何 Windows shell 命令 例如 一些微不足道的事情 echo foo 操作方法如下 Shell cmd echo foo vbNormalFocus
  • iOS - 确保在主线程上执行[重复]

    这个问题在这里已经有答案了 我想知道如何打电话给我function on the 主线程 我如何确保我的function被称为主线程 这是继之前的question https stackoverflow com questions 1105
  • Java 中的 LRU 缓存实现

    我看过下面的代码 我认为addElement方法的实现中有一个无用的while循环 它永远不应该有比 size 1 更多的元素 因为已经有一个写锁 那么为什么 addElement 方法会删除元素直到它达到这个条件 真的 while con
  • 从辅助线程重定向标准输出(使用函数而不是类进行多线程?)

    我正在努力让我的stdout显示在QTextEdit通过 Qt Designer PyQt5 制作 实际上我让它工作了 但它并没有在制作的同时显示信息 相反 它会等待进程完全结束 然后才会立即显示所有信息 我知道这应该通过线程来解决 也自Q
  • 异步回调到BackgroundWorker

    我想使用 NET FTP 库 http netftp codeplex com http netftp codeplex com 该库提供 BeginOpenRead string AsyncCallback object 使用异步编程模型
  • 在 VB6 中如何处理错误处理程序中的错误?

    我在 VB6 应用程序中经常遇到这种情况 Private Sub DoSomething On Error Goto err1 Call ProcessLargeBatch1 Call ProcessLargeBatch2 more Exi
  • Java Timer 类:如果其中一个任务抛出异常,则计时器任务停止执行

    new Timer scheduleAtFixedRate new TimerTask Override public void run System out println run throw new SomeRandomExceptio
  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • Python GIL 防止多核机器中 CPU 使用率超过 100%?

    许多参考文献都说 Python GIL 降低了多核机器中多线程代码的性能 因为每个线程在执行之前都需要获取 GIL 换句话说 看起来GIL实际上是将多线程Python程序变成了单线程模式 例如 1 线程A获得GIL 执行一段时间 释放GIL
  • 定时器时间不作为变量改变?

    这是我的代码 private int V Time 1 try final Timer V Timer final Handler V Handler V Timer new Timer V Handler new Handler Loop
  • 多线程 - 比单线程慢

    当我使用多个线程而不是单线程运行程序时 它会变慢 不是应该更快吗 该程序应该遍历从起始目录开始的所有目录 并查找并打印所有名为 X 的文件 代码如下 while done pthread mutex lock lock if list is
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • 线程数组?

    所以我在理解如何避免线程的顺序执行时遇到了问题 我试图创建一个线程数组并在单独的循环中执行 start 和 join 函数 这是我现在拥有的代码示例 private static int w static class wThreads im
  • 何时分离或加入 boost 线程?

    我有一个方法 大约每 30 秒触发一次 我需要在一个线程中包含它 我有一个可以从类外调用的方法 像 call Threaded Method 这样的东西会创建一个线程 该线程本身会调用最终的线程方法 这些是 MyClass 的方法 void
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • java中的负载均衡线程池的种类

    我正在寻找一个负载平衡的线程池 到目前为止还没有成功 不确定负载平衡是否是正确的措辞 让我解释一下我试图实现的目标 第1部分 我有 Jobs 有 8 到 10 个单一任务 在 6 核 CPU 上 我让 8 个线程并行处理此任务 这似乎提供了

随机推荐

  • 我可以将层归一化与 CNN 结合使用吗?

    我发现层归一化是比批量归一化更现代的归一化方法 并且在 Tensorflow 中编码非常简单 但我认为层归一化是为 RNN 设计的 批量归一化是为 CNN 设计的 我可以使用 CNN 的层归一化来处理图像分类任务吗 选择批量归一化或层的标准
  • 从列表中删除项目[重复]

    这个问题在这里已经有答案了 在循环列表时 我想根据条件删除列表中的项目 请参阅下面的代码 这给了我一个ConcurrentModification例外 for Object a list if a getXXX equalsIgnoreCa
  • 将 IConfigurationRoot 部分的更改保存到 .net Core 2.2 中的 *.json 文件

    我正在挖掘寻找解决方案 但没有找到它 我敢打赌有人遇到过这个问题 那么问题是什么 为了测试 我创建了简单的控制台应用程序 解决方案将在 asp net core web api 中使用 我有 TestSetting json 配置文件 设置
  • 为什么模板参数不推导只作为返回类型?

    如果我不在函数参数列表中使用模板参数 类型 gt 仅作为返回类型 则不会有任何推论 template
  • 多地图空间问题:Guava

    在我的 Java 代码中 我使用 Guava 的 Multimap com google common collect Multimap 通过使用这个 Multimap
  • 散列密码的最佳方法是什么?在 PHP 7 中,password_hash 是否足够安全或者是否有更安全的方法?

    散列密码的最佳方法是什么 我知道一种方法可以很好地完成工作 但我想知道是否有更好的方法在 PHP 7 中对密码进行哈希处理password hash password hash 足够好吗 我想知道在 PHP 7 中是否有比 password
  • SpringTemplate 没有找到适合响应类型的 HttpMessageConverter

    我在使用 Spring Rest 模板时收到以下错误 但我已经为 json 响应定义了 jackson 当我使用其余客户端查询 url 时 我得到了很好的响应 org springframework web client RestClien
  • Python Tornado渲染静态目录

    我正在尝试使用 Python 中的 Tornado API 从静态目录提供页面 这个答案与我想做的类似 但我似乎无法让它发挥作用 我的目录结构如下所示 所有静态文件都位于名为的文件夹内web 我有一个像这样的网络服务器设置 class Ap
  • 录制音频并以 Wav 或 MP3 形式上传到服务器

    我不确定我问的地方是否正确 但基本上我正在寻找有关最佳方法的建议 通过网站上的麦克风录制音频并将音频以 Wav 或 MP3 文件上传到服务器 有没有人对闪光灯有丰富的经验 这会很难做到吗 目前市场上有什么可以做到这一点吗 我正在考虑将其实现
  • 如何为“日期”创建索引?

    如何为 日期 创建索引 CentOS7 MongoDB服务器版本 3 4 2 db animals createIndex date ok 0 errmsg The field key must be an object but got s
  • web组件shadow dom中的rem

    我们知道我们可以设置font size on html as the rem基于普通 DOM 节点 我使用这个技巧使我的应用程序的字体更加灵活 可以通过 js 动态更改 然而 当我创建一个Web组件时 我发现rem即使我尝试添加样式 影子
  • GWT-RPC 与 HTTP 调用 - 哪个更好?

    我正在评估使用 GWT RPC 进行的调用和HTTP调用 我的 appln 服务作为 Java servlet 托管 我当前使用 HTTPProxy 连接从它们获取数据 我希望将它们转换为 GWT RPC 调用 如果这能带来性能改进 我想知
  • 云端点收集参数

    我正在使用 Google App Engine Cloud Endpoints 并且正在尝试接收集合参数 不确定我是否能做到这一点 我知道我可以返回列表或任何集合 This public List
  • 选择悬停项目之前的所有项目

    我有一个带有 5 个内联星的容器 我需要的是当你将鼠标悬停在一颗星星上时 该星星和它之前的所有星星都会获得不同的背景 我使用的是精灵 所以我改变了背景位置 Markup div class wpr span class star span
  • Gson:直接将String转换为JsonObject(无POJO)

    似乎无法弄清楚这一点 我正在尝试在 GSON 中进行 JSON 树操作 但在转换为之前 我不知道或没有 POJO 来将字符串转换为JsonObject 有没有办法直接从String to JsonObject 我尝试过以下 Scala 语法
  • Android 从资源中获取颜色列表

    我有一个颜色列表
  • 是否可以修改 beforeSend 回调中的 XMLHttpRequest 数据?

    是否可以通过修改 beforeSend 回调中的 XMLHttpRequest 对象来修改 Ajax 请求中发送的数据 如果是的话我该怎么做 是的 你可以修改它 签名beforeSend is actually 在 jQuery 1 4 中
  • catch事务连接后的SqlTransaction为null

    我有一个循环 我用不同的参数值调用存储过程 下次通话cmd ExecuteNonQuery 我使用事务来保存全部或回滚 并使用 checkBox2 始终保存 我发现一个问题 但找不到解决方案 在第一个问题之后 当 catch 块被触发时 事
  • CSS 过渡和 jQuery 淡入淡出之间的冲突

    我正在尝试创建一个带有小菜单的瓷砖墙display none一些基于其类别的元素 在我的 CSS 中 我有 CSS 转换 这会导致fadeIn and fadeOut不工作 如果我添加一个时间 该元素将需要那么长时间才能消失 但实际上并没有
  • VB6 Timer 控件是否创建单独的线程?

    有VB6吗Timer控件启动时创建一个单独的处理线程 VB6 定时器控件不是某种在后台线程上运行的忙等待循环 他们根本就没有真正 跑 据我所知 当您设置 Enabled True 或更改 Interval 如果它是 0 时 控件会调用 Se