C# 处理设备在单独线程中引发的事件

C# 处理设备在单独线程中引发的事件,c#,multithreading,event-handling,C#,Multithreading,Event Handling,我已经编写了一个C#应用程序,它与两个连接的设备一起工作,即。显示图像的数字显微镜和返回计数器的计数装置。这两个设备同时运行,并生成指示图像和计数器值更改的事件 显微镜生成以下事件: void _ImageCaptured(object source, WebcamEventArgs e) { } And counter generates below event: void _OnRegisterValueChanged(object sender, RegisterChangeEven

我已经编写了一个C#应用程序,它与两个连接的设备一起工作,即。显示图像的数字显微镜和返回计数器的计数装置。这两个设备同时运行,并生成指示图像和计数器值更改的事件

显微镜生成以下事件:

void _ImageCaptured(object source, WebcamEventArgs e)
{
}  

And counter generates below event:
void _OnRegisterValueChanged(object sender, RegisterChangeEventArgs args)
{
}

作为一个单线程应用程序,我当前的应用程序无法以相同的速度获取图像和计数器值,并且它们之间存在一些延迟。我想使这个应用程序成为多线程的,并在单独的线程中处理这两个事件。感谢您提供的帮助。

因此,这意味着您要将要在两个不同线程中运行的逻辑与初始化点分开,然后您将在不同的线程中收到每个通知,每个线程都在一个线程中,在触发事件的位置。然后,如果您需要在这些事件之间共享一些数据,只需对其进行同步即可。

您可能没有创建线程,但通常C#事件是从线程池执行的。那么,是什么产生了这些事件呢?你是做beginRead()还是beginReceive()?还是从事件处理程序调用invoke(),并在UI线程上处理它们?