使操作异步

时间:2010-02-20 19:50:09

标签: .net asynchronous

我有一个代表摄像机的第三方ActiveX。 (AcxCamera myCam;

我通过Connect方法将此相机连接到视频流。 (myCam.Connect(url);

需要注意的是,AcxCamera是从第三方Acx继承的对象,所以我可以“控制”Connect方法。

现在,我有一些应该同步启动的摄像头。

我想做点什么:

foreach(AcxCamera cam in myCams)
    cam.BeginConnect();

有可能吗?

1 个答案:

答案 0 :(得分:1)

在处理ActiveX控件时,几乎可以肯定您正在处理位于STA公寓内的COM对象。这意味着控件绑定到特定线程,在本例中为UI。如果你试图从后台线程调用它的方法,CLR和COM将密谋使调用实际发生在控件具有亲和力的线程上。

简而言之,即使使用一些奇特的线程逻辑,你也不太可能实现你想要做的事情。