gpt4 book ai didi

java - 交付保证和自动线程发布者/订阅者 c#

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:03 25 4
gpt4 key购买 nike

我是 java 程序员,对于一个项目,我应该开始 c# windows 窗体应用程序编程在 java 中,我们有诸如 dropwizard 之类的框架。这些框架单独管理线程或者在 vertx 中,我们有事件总线,有了它,我们可以以最简单的方式实现发布/订阅和生产者/消费者,我们有交付保证和自动线程管理(如果需要,为每条消息创建新线程)我应该解决这个问题:

Frame Captured By Camera, do IO, do another IO -> First DoSome Image Processing -> Show on Form Picture Box -> Second Image Processing -> Match Similar Frames And Save in Data Structure

每个图像处理都有很多计算,每个帧都有自己的流程帧可以同时处理,每个处理单元可以单独工作我决定在 C# 中使用基于事件的编程在图像捕获后由函数引发的事件此事件由第一个图像处理模块注册并且在第一个图像处理模块完成其工作后上升事件以在表单上显示图像并上升另一个事件以将数据传递给第二个图像处理单元但我有不同的问题:

  1. 我知道由于第一个图像处理单元的计算时间,捕获的图像会延迟显示,但我发现显示图像有很多滞后
  2. 我错过了一些画面,但我不知道为什么

解决这些问题的最佳方案是什么。每个相机帧只是一个位图图像我有一个名为 MyEvent 的事件,我有一个以 0 开头的静态 int id,并在事件上升时递增并注册 4 个函数来处理这个事件并在事件处理程序中打印 id 但在某些处理程序中随机缺少一些 id

最佳答案

您可以使用 Rx.Net用于事件驱动的非阻塞应用程序。

您还可以考虑在 C# 中使用 asyncawait 语言结构。

如果您想进行基于 Actor 的编程,您可以使用 Akka.NET

关于java - 交付保证和自动线程发布者/订阅者 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46659411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com