这是一个概念性问题:我想在Windows.Form
应用程序中运行 Canon EDSDK。现在理想情况下,我想将我的数据与我的 ui 和我的模型分开。具体来说,这意味着我windows.form
来自我的 EDSDK 相机对象。通过四处寻找,试图让相机独立于我的表单运行,我在这里发现了这个帖子EDSDK callbacks not working基本上描述了我最初使用 EDSDK 的经历。
因此,经过进一步研究,我发现我需要启动表单Application.Run()
才能接收回调的 Windows 消息。所以目前,我在 UI-Form 中运行 EDSDK,它为我提供了我想要的功能。我建立在一个很棒的工具箱上,可以在这里找到:http: //www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp。但是,我遇到了我的应用程序冻结的情况,很可能是由于系统缺少相机回调。(至少这是我的假设)
所以我想做的是回到我最初的想法,在单独的任务中运行 EDSDK,从而能够分离原因并调试任何问题。我在其他几篇帖子中看到运行多个Application.Run()
命令是一个坏主意或坏习惯。但是,我还没有想出如何以不同的方式构建我的程序结构的绝妙想法。为此,我很想就更好的架构提供一些意见。