winforms 交付保证和自动线程发布者/订阅者C#

sauutmhj  于 8个月前  发布在  C#
关注(0)|答案(1)|浏览(72)

我是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.我知道捕获的图像将显示延迟,因为第一个图像处理单元的计算时间,但我看到了很多滞后显示图像
1.我错过了一些画面,但我不知道为什么
解决这些问题的最佳方案是什么?
每个相机帧只是一个位图图像。
我有一个事件MyEvent,我有一个静态int id,它以0开头,在引发事件时递增。
和寄存器4功能来处理此事件。
并在事件处理程序中打印id,但在某些处理程序中随机缺少某些id

h79rfbju

h79rfbju1#

您可以将Rx.Net用于事件驱动的非阻塞应用程序。
您也可以考虑在C#中使用asyncawait结构。
如果你想做基于Actor的编程,你可以使用Akka.NET

相关问题