我的应用程序(winform)必须访问串口上的设备。所有的通信东西放在一个DLL,它处理所有的串口通信,并且必须将串行设备的响应返回到主应用程序。 如何让主应用程序等待dll的响应以继续接收数据?暂停主程序等待DLL响应
0
A
回答
1
它取决于该DLL公开的API。如果他们提供同步API,则根本不需要任何暂停。你的线程将进入dll代码,当它返回到你的代码结果将在那里。
但是,如果API是异步应该是轮询方法或回调。
无论如何,如果你提供API的代码,我将能够给出更多相关的答案。
0
如果有问题的dll代码是异步的,则线程连接可能会发挥作用。无论如何,您是否可以访问用于读取串口的底层线程?
0
如果API是同步的,则在另一个线程中调用API。当您启动该线程时,禁用UI中的所有相关控件(或禁用整个表单;但这通常不是一种好的用户体验),并提供某种通知(例如状态栏上的文本)。当API返回时通知UI线程已完成并重新启用控件并向用户提供一些通知。
如果API是异步的,请禁用控件,提供状态并调用API。当API通知您它已完成(或失败)时,重新启用控件并提供状态。
相关问题
- 1. cordova angularjs强制应用程序暂停等待用户权限
- 2. 如何在等待UIAlertView响应时暂停代码执行?
- 3. 等待/暂停C秒数
- 4. 我如何让主线程暂停,等待System.Timer.Timer运行
- 5. 暂停Servlet响应
- 6. TCP响应暂停
- 7. 如何在不暂停主线程的情况下通知等待线程?
- 8. JS等待响应
- 9. SerialPort等待响应
- 10. 暂停/等待* .bat完成VB.net
- 11. DOM风格变化等待暂停
- 12. 连续任务等待并暂停
- 13. 需要objective-c暂停/等待功能
- 14. 等待屏幕,等待响应
- 15. 暂停应用程序
- 16. 编程等待Web服务响应的Web应用程序
- 17. 如果一个线程正在console.readline上等待线程暂停?
- 18. 保持线程等待窗体响应?
- 19. Android应用程序在等待HTTP响应时显示黑屏
- 20. 有没有任何好处,暂停线程,让它等待?
- 21. 取消暂停/等待postdelayed处理程序/可运行,并仍然激活暂停的代码
- 22. 如何让Parsley远程验证程序等待响应?
- 23. AcceptTcpClientAsync不等待响应
- 24. 如何等待JsDialog响应?
- 25. 等待的getJSON响应
- 26. jQuery post - 等待响应
- 27. Angular2等待$ http响应
- 28. 如何等待AJAX响应
- 29. Angular2等待HttpPost响应
- 30. JQuery的等待Ajax响应
事件驱动的方法通常比等待好得多。如果等待时间过长,您的应用程序可能会冻结,Windows可能会提供杀死它的信息。 – 2012-07-30 14:24:38