4

我正在尝试控制 GoPro Hero 3 相机。我在 Internet 上找到了一个图书馆:https ://github.com/r1pper/GoPro.Hero ,据我阅读,这是一个不错的图书馆。但是,当我尝试与相机建立连接时,我的完整 Windows 窗体应用程序会冻结,而我的控制台应用程序(用于测试)只是建立连接。我认为这与异步任务有关,我做错了什么?

此行创建与相机的连接并发送命令:

var camera = Camera.Create<Hero3Camera>("10.5.5.9");
4

1 回答 1

5

您可以从另一个线程调用命令,也可以简单地将 HttpRequestMode 设置为同步

GoPro.Hero.Configuration.CommandRequestMode = GoPro.Hero.Configuration.HttpRequestMode.Sync

描述:

CommandRequest在内部使用任务,当我们使用阻塞方法Create而不是CreateAsync调用Task.Wait在导致 UI 上下文中死锁的方法(使用与 UI 线程相同的上下文)时,通过设置Configuration.CommandRequestMode为 Sync,它使用替代方法SendRequestSynchronous来防止死锁.

于 2014-08-26T06:39:10.193 回答