暂停主程序等待dll响应

时间:2012-07-30 14:17:38

标签: c# visual-studio-2008 dll

我的应用程序(winform)必须访问串行端口上的设备。所有的通信内容都放在一个处理所有串口通信的DLL中,它必须将串行设备的响应返回给主应用程序。 如何让主应用程序等待dll的响应继续接收数据?

3 个答案:

答案 0 :(得分:1)

这取决于该DLL暴露的API。如果他们提供同步API,那么您根本不需要任何暂停。你的线程将输入dll代码,当它返回到你的代码时,结果就会出现。

但是,如果API是异步的,则应该使用轮询方法或回调。

无论如何,如果您提供了API代码,我将能够给出更相关的答案。

答案 1 :(得分:0)

如果有问题的DLL代码是异步的,则线程连接可能会起作用。无论如何,您是否可以访问用于读取串行端口的底层线程?

答案 2 :(得分:0)

如果API是同步的,请在另一个线程中调用API。当您启动该线程时,禁用UI中的所有相关控件(或禁用整个表单;但这通常不是良好的用户体验)并提供某种通知(例如状态栏上的文本)。当API返回时,通知UI该线程已完成并重新启用控件并向用户提供一些通知。

如果API是异步的,请禁用控件,提供状态并调用API。当API通知您已完成(或失败)重新启用控件并提供状态时。