Application.DoEvents() 的替代方法

2023-11-21

我正在开发一个基于 webBrowser 控件的消息传递系统,以便我可以随心所欲地格式化文本。当用户离线并收到消息时,消息将被存储,并在用户重新登录时为每条消息发送一个事件。当我为网站设置默认 html 等时,我通常使用:

while (this.webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();

当程序正常运行时,此功能有效。当用户在离线状态下接收发送的消息时,这会触发下一条消息事件,依此类推,每条消息直到最后一条。这意味着仅显示离线时发送的最后一条消息。我想要像 Application.DoEvents() 这样的东西,它允许控件不断更新和加载,但不会触发其他事件。

Thanks

EDIT:

我通过完全删除 DoEvents() 解决了这个问题。我没有在工作时更改 DocumentText,而是设置了一个字符串生成器,然后在最后一次性设置了 html。


我建议您停止使用Application.DoEvents(),它产生的问题多于它解决的问题。查看this.

更好的方法是使用AutoResetEvent每当加载完成时发出通知,或者在加载完成时引发事件。您也可以在另一个线程上运行等待,因此不必使用Application.DoEvents()...

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

Application.DoEvents() 的替代方法 的相关文章

随机推荐

  • 没有完整命名空间的类型引用

    有两个打字稿文件 A ts export class Person public name string constructor and B ts import A module A var p A Person 到目前为止一切正常 但是
  • 处理一元运算符的中缀到后缀算法

    算法的 I p 将是这样的表达式 a b a b c 即标准 C 编译器支持的任何表达式 现在我已经将输入格式化为标记流 标记包含信息 无论是运算符还是操作数 该算法应该接受这个并给我一个可以计算的后缀表达式 如果我使用标准转换算法 我无法
  • 在 Laravel 中访问 $_GET 值的最佳实践是什么?

    有没有更好的访问方式 GET而不是 Laravel 中的变量本身 或者就是这样 我需要 API 的多个参数 例如 users q keyword order desc limit 5 是否有更干净 更安全且类似 Laravel 的方式来访问
  • 使用 Azure Functions 在本地存储状态

    Azure Functions 是否提供本地 状态 存储来消除调用其他服务 例如存储 docDB 等 的需要 功能基于 Azure 应用服务构建 提供存储持久文件的功能 例如您可以将文件存储在 HOME data SomeFolderOfY
  • 在 Equinox 中,是否可以将 OSGi 包标记为从其包含功能的 p2.inf 开始?

    我有一个 Eclipse 功能 其中包含多个捆绑包 我想告诉 p2 在安装该功能时将其中一个捆绑包标记为已启动 这可以使用捆绑包自己的 META INF p2 inf 来实现 如下所示 instructions configure mark
  • Json.NET:反序列化嵌套 Json

    如何反序列化此 Json 字符串上的 Items 类部分 Buddies count 1 items id 5099207ee4b0cfbb6a2bd4ec firstName Foo lastName Bar image url size
  • Buildozer 未能执行最后一个命令

    当我尝试在我的设备上构建 推送并自动运行 apk 时 使用buildozer android debug deploy run它显示这些错误 Check configuration tokens Ensure build layout Ch
  • notify可以多次唤醒同一个线程吗?

    想象一下 Java 中有一个典型的生产者 消费者模式 为了提高效率 你想使用notify 并不是notifyAll 当一个新元素被添加到队列中时 如果两个生产者线程调用notify 是否可以保证两个不同的等待消费者线程会被唤醒 或者可以是两
  • Windows 中相当于命令“date+%s”的是什么

    我正在编写一个批处理脚本 我需要 unix 时间 在linux下很容易 但我不知道如何在windows下做到这一点 这是一个适用于任何区域设置的本机批处理解决方案 它使用 WMIC 以与区域设置无关的方式获取当前本地时间 其他一切都是字符串
  • CSS中的蛇形对齐

    我一直在努力解决 CSS 中的以下问题 我有任意数量的项目 跨度或 div 我想将它们以蛇状图案包装在容器内 我的意思是 如果我有 10 个项目 每个项目的宽度为 20 像素 我希望它们在 60 像素宽的容器中显示如下 0 1 2 5 4
  • setNeedsDisplay并不总是调用drawRect

    我在自定义表格单元格中有一个自定义视图 每次更改自定义视图上的特定属性时 我都会调用 self setNeedsDisplay 这会重绘视图 void drawRect CGRect rect 该属性在表视图委托中设置tableView c
  • 如何在 dart 中创建多个构造函数?

    我想通过调用具有不同数量参数的构造函数来创建不同的对象 我怎样才能在 Dart 中实现这一目标 class A String b c d A this b this c A this b this c this d See 构造函数部分飞镖
  • 如何将 ctrl+c 发送到 C# 中的进程?

    我正在为命令行可执行文件编写一个包装类 该exe接受来自的输入stdin直到我击中Ctrl C在命令提示符 shell 中 在这种情况下 它将输出打印到stdout基于输入 我想模拟一下Ctrl C按 C 代码 将终止命令发送到 NETPr
  • 检测范围大小的编译时常数

    请注意 在提出此问题后 缺陷报告更改了下面提到的行为 见问题末尾 编译器资源管理器链接 考虑以下 Variant 1 template
  • 在 C# 中缓存 FileInfo 属性

    来自MSDN 文档为了FileInfo Name属性 我看到该属性的数据在第一次调用时被缓存 并且仅在随后使用Refresh method 我有以下问题 但在文档中找不到或不太清楚 所有属性的数据是否同时缓存 Is the Refresh创
  • 将部分视图渲染为字符串 MVC4

    我正在使用以下内容来呈现字符串的部分视图 protected string RenderPartialViewToString string viewName object model if string IsNullOrEmpty vie
  • 告知作业何时完成

    我正在寻找一种方法 从脚本内 判断 Kubernetes 作业何时完成 然后我想从容器中取出日志并执行清理 这样做的好方法是什么 最好的方法是跑步kubectl describe job
  • 如何检查对象中的对象是否存在

    似乎以下用于检查对象成员是否存在的技术会产生错误 因为在检查之前尚未声明 bar 父对象 这意味着我要么必须在检查之前声明它 要么使用两个 typeof 表达式 其中任何一个都是多余的代码 var foo newVal typeof foo
  • 如何为 Google Apps 脚本网络应用程序上的并发用户提供便利?

    我目前正在创建一个可以读取和写入 Google 表格的网络应用程序 它本质上是一个表单应用程序 它从 HTML 表单中获取输入 然后使用appendRow 以及随后使用getRange and setValue 将更多数据附加到该行 每行代
  • Application.DoEvents() 的替代方法

    我正在开发一个基于 webBrowser 控件的消息传递系统 以便我可以随心所欲地格式化文本 当用户离线并收到消息时 消息将被存储 并在用户重新登录时为每条消息发送一个事件 当我为网站设置默认 html 等时 我通常使用 while thi