现在有一个程序运行于服务器上,用来发送和接收短消息并进行处理,首先是创建两个线程,每个线程监视一个串口,看是否有短信传来,若有,则处理。同时,想再开一个线程,侦听客户机传来的消息,若有消息传来,则调用其中的一个串口发送一条短消息,因此,若那个串口没有处理短消息,也就是说既没有收到短消息也不是处于发送短消息的状态,则用这个串口发送要处理的消息。
问题是,如何判断这个串口不是正在发送或接收消息呢?似乎不能简单地判断线程是否运行的状态来判断,是吗?请问,该用什么函数或方法来判断呢?上述设想是否正确呢?请高手明示!谢谢
问题是,如何判断这个串口不是正在发送或接收消息呢?似乎不能简单地判断线程是否运行的状态来判断,是吗?请问,该用什么函数或方法来判断呢?上述设想是否正确呢?请高手明示!谢谢
我将串口读取或发送的函数都作在主窗口里,然后在线程中用Synchronize()的方法调用该函数,这样即使有多个线程同时发送(其实Synchronize保证了无法同时执行)也不会有问题了。