我已经编写了一个.net 4.0控制台应用程序,它定期与GSM调制解调器通信,以获取收到的SMS消息列表(它是一个USB调制解调器,但代码通过串口驱动程序连接到它并发送AT命令 - 顺便说一句,它是Sierra无线调制解调器,但我不能改变它,我有最新的驱动程序).会发生什么事情,经过一段时间(可能是几小时,也许几天),它就会停止工作.这是一个日志片段......
2012-04-17 23:07:31 DEBUG Modem Check (108) - Executing AT command 'AT+CPMS="ME"'...
2012-04-17 23:07:31 DEBUG Modem Check (108) - Finished executing 'AT+CPMS="ME"'
2012-04-17 23:07:31 DEBUG Modem Check (108) - Detaching event handlers for 'COM13'
2012-04-17 23:07:31 DEBUG Modem Check (108) - Disposing the SerialPort for 'COM13'
Run Code Online (Sandbox Code Playgroud)
这就是日志的结束 - 即使我希望看到至少还有一个语句,这就是相关的代码:
internal T Execute()
{
var modemPort = new SerialPort();
T ret;
try
{
modemPort.ErrorReceived += ModemPortErrorReceived;
modemPort.PortName = _descriptor.PortName;
modemPort.Handshake = Handshake.None;
modemPort.DataBits = 8;
modemPort.StopBits = StopBits.One; …Run Code Online (Sandbox Code Playgroud)