2012-07-24 36 views
0

我写了一个C#应用程序,它正在处理2个附属设备,一台显示图像的数字显微镜和一台计数器,它使我返回一个计数器。这两个设备同时运行并生成事件,指示图像和计数器值的变化。处理单独线程中的设备引发的事件

显微镜生成低于事件:

void _ImageCaptured(object source, WebcamEventArgs e) 
{ 
} 

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

作为一个单线程应用程序,我目前的应用程序不能以相同的速度获得图像和计数器值和它们之间有一定的滞后性。我想让这个应用程序是多线程的,并在单独的线程中处理这两个事件。感谢任何帮助实现这一目标。

+0

您可能没有创建线程,但通常从ThreadPool执行C#事件。那么产生这些事件的是什么?你做一些beginRead()或beginReceive()?还是你从事件处理程序中调用invoke(),并在UI线程上处理它们? – PRouleau 2012-07-24 04:03:50

回答

0

所以这意味着你要将逻辑从初始点分成两个不同的线程运行 - 然后你会在不同的线程中收到每个通知 - 每个线程都在一个事件被触发的地方。那么如果你需要在这些事件之间分享一些数据 - 只需同步就可以了。