还装有.英雄库运行在控制台应用程序和冻结windows窗体
本文关键字:应用程序 冻结 windows 窗体 控制台 英雄 运行 | 更新日期: 2023-09-27 17:49:22
我正在尝试控制GoPro Hero 3相机。我在网上找到了一个图书馆:https://github.com/r1pper/GoPro.Hero,从我读到的,这是一个很好的图书馆。但是当我尝试与相机建立连接时,我的整个windows窗体应用程序冻结,而我的控制台应用程序(用于测试)只是建立连接。我认为这与异步任务有关,我做错了什么?
这一行创建了与相机的连接,并发送了一个命令:
var camera = Camera.Create<Hero3Camera>("10.5.5.9");
你可以从另一个线程调用你的命令或简单地设置HttpRequestMode同步
GoPro.Hero.Configuration.CommandRequestMode = GoPro.Hero.Configuration.HttpRequestMode.Sync
描述:
CommandRequest
在内部使用Task,当我们使用像Create
这样的阻塞方法而不是CreateAsync
时,它调用Task。等待方法导致死锁在UI上下文(使用相同的上下文作为UI线程),通过设置Configuration.CommandRequestMode
为Sync,它使用一个替代方法SendRequestSynchronous防止死锁。