从不同的事件处理程序调用相同的方法时不一致的行为

时间:2011-09-26 18:55:40

标签: c# .net edsdk

我已经构建了一个小型摄像头捕获守护程序,它使用Canon的EDSDK和Wayne Hartman's C# wrapper从连接的DSLR捕获一系列图像。

当我从表单本身的测试按钮单击处理程序调用{​​{1}}时,捕获工作非常可靠。但是,当我尝试从takePhotograph()调用takePhotograph()时,它非常不可靠并经常导致应用停止响应。跟踪调用堆栈后,看起来整个调用顺序混乱,最终导致EDSDK在提前调用socketServer_MessageReceived()时(在捕获所有图像之前)挂断。

我来自非多线程环境(Flex / ActionScript),并且有预感我只是在处理与我的处理程序有关的一些错误。

以下是我的代码的要点:

EdsDownload()

1 个答案:

答案 0 :(得分:1)

您是否尝试使用takePhotographForm.Invoke)包裹this.Invoke?如果它可以从GUI工作,那么当你为呼叫强制使用正确的线程时它也可以工作。