|
winCE VS2005下C#定时器和串口问题
[复制链接]
我用的设备是MOXA74XX,该设备能提供多个串口。我的程序目的是要多个串口要同时读取数据。我程序实现是:每个串口开启两个定时器A、B,定时器A每间隔5秒,发送一个读取命令,定时器B则每间隔0.5秒不停的读串口返回的数据。如果定时器B收的数据正确,则在定时器B中关闭定时器A和B。如果定时器A连续发送3次都没有正确数据返回,则定时器A关闭定时器A和B,即关闭自己和另一个。现在程序在跟CE设备74XX连机调试的情况下,从串口监视器看都是正确的,能够达到我的预想。但是将生成的EXE文件下载到设备中后,看起来定时器A和B是不能相互关闭的。程序就跑飞了。
定时器:
global.timCMD_C4 = new Timer(new TimerCallback(ACTW_CMD_C4.read_Wipe_C4), new AutoResetEvent(false), 0, 1000);
class ACTW_CMD_C4 //计数定时器
{
public static void read_Wipe_C4(object StateInfo)
{
:
:
}
}
定时器的关闭: global.timCNT_C4.Dispose();
后来有听说要用Threading定时器,否则不能关闭
/global.timCNT_C4 = new System.Threading.Timer(new TimerCallback(ACTW_CNT_C4.sendWiperCmd_C4), null, 0, 5000);
可是这样也是在连机可用,生成的EXE下载到CE设备后不能用。
这个问题困扰我一段时间了,请教一下有遇到这种问题的吗?
或者请高手指教一下,如果想实现我上面要求的功能,都是什么方式呢?
|
|