Uwp 是否可以读取串行端口的状态?是否正在使用?

Uwp 是否可以读取串行端口的状态?是否正在使用?,uwp,win-universal-app,windows-10-universal,uwp-xaml,Uwp,Win Universal App,Windows 10 Universal,Uwp Xaml,我目前正在为Raspberry Pi编写Win Iot应用程序,我目前遇到一些问题 我想问的问题是,我有多个命令,我必须通过串行端口(RS485)发送,我也会得到一个响应。 但是,每当我两次不小心调用send命令,或者我的应用程序什么也没做(它正在做什么,但我不知道是什么…很遗憾),我再次按下send按钮,我的应用程序就会崩溃 现在我想问一下,是否有一种方法可以以某种方式获取串行端口的当前状态? 我想知道当前端口是否用于发送/接收,如果是,我想阻止命令发送,直到当前操作完成。或者它应该只给出一个

我目前正在为Raspberry Pi编写Win Iot应用程序,我目前遇到一些问题

我想问的问题是,我有多个命令,我必须通过串行端口(RS485)发送,我也会得到一个响应。 但是,每当我两次不小心调用send命令,或者我的应用程序什么也没做(它正在做什么,但我不知道是什么…很遗憾),我再次按下send按钮,我的应用程序就会崩溃

现在我想问一下,是否有一种方法可以以某种方式获取串行端口的当前状态? 我想知道当前端口是否用于发送/接收,如果是,我想阻止命令发送,直到当前操作完成。或者它应该只给出一个错误,比如“我很忙,请稍后再试!”

我真的很感激你的帮助,因为我不知道怎么做://p>

串行端口只能打开一次。如果它已经打开了,并且您尝试再次打开它,那么您应该得到一个
UnauthorizedAccessException
异常,您应该处理该异常。您可以将其解释为另一个仍在进行的命令操作


如果您有一个com端口实例,并且在命令之间共享该实例,那么应该依赖某种锁定机制来保护该组件。例如,取一个初始化为
1
,当您想使用comport时,等待信号量。完成后,释放信号灯。这样,只有一个命令将同时使用该流。

Ok这确实完成了阻止其他命令使用端口的工作,而用户已经在使用该端口。这直接解决了我遇到的另一个问题,我必须连续直接发出两个命令,因为我需要两个结果。因此,感谢您的帮助:)现在唯一的问题是,当我启动第三个命令时,我的应用程序崩溃了…我将每个命令都放入了try/catch块,但这并不能阻止它崩溃。。。