小编use*_*339的帖子

当可用字节时,.Net SerialPort需要0.5秒以上的时间来读取字节

我在C#中使用.Net SerialPort类从端口读取字节.收到DataReceived事件后,我检查串口以查看是否可以读取字节.但是,即使字节可用,端口也可能需要半秒以上才能读取单个字节.守则如下:

...
while(Port.BytesToRead > 0) 
{
    StopWatch.Restart();
    Int32 BytesRead = Port.Read(Read, 0, 1);
    StopWatch.Stop();
    if (StopWatch.ElapsedMilliseconds > 100)
    {
    // Record the time. The stopwatch code
    // was only added after performance issues were observed.
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我测量的时间不是读取所有字节的时间,而是读取单个字节的时间.经常我会收到一个DataReceived事件,并且必须等待0.5秒才能读取第一个字节.

我实际上尝试将Port的ReadTimeout属性设置为更小的值以防止它无限期地坐在那里,但是这个属性似乎被忽略了.

任何帮助非常感谢.

c# serial-port

7
推荐指数
1
解决办法
563
查看次数

System.Threading.Timer迟到了几百毫秒

我正在使用System.Threading.Timer,它被配置为在100ms内到期.通常,它会在预期时间的10ms内调用回调方法,但是,回调通常会在最晚500毫秒内调用.经常,我的意思是大约25%的时间.

任何人都能解释一下吗?

c#

1
推荐指数
1
解决办法
291
查看次数

标签 统计

c# ×2

serial-port ×1