我使用System.Threading.Timer
创建一个计时器,该计时器将字符串打印到串行端口,然后每隔一秒从另一个串行端口读取。我试图通过发送参数到我的TimerCallback
函数来做到这一点。下面是我的代码,其中定时器初始化和回调函数的代码。TimerCallback不返回值C#
初始化:
TimerCallback tcb = Timer_func(buff_out, send_port, recv_port);
AutoResetEvent autoEvent = new AutoResetEvent(false);
Timer aTimer = new Timer(tcb,autoEvent,1000,1000);
回调函数:
public static TimerCallback Timer_func(string buff_out, SerialPort send_port, SerialPort recv_port)
{
string buff_in;
send_port.WriteLine(buff_out);
buff_in = recv_port.ReadLine();
Console.WriteLine(buff_in);
}
初始化发生在main()函数,并且两个功能都在同一类。
当我编译代码时,我收到错误CS0161:“不是所有的代码路径都返回一个值”。在试图补救这个我已经添加return 1;
到该功能的结尾,但后来我收到错误CS0029:“不能明确地将类型'int'转换为'System.Threading.Timer'。
我在做什么错,我怎么能解决这个问题。(新的C#)。谢谢你在前进!
你完全迷失了方向,此代码。没有任何情况下你可以通过定时器使其可靠。你在其他地方设置了一些代码来设置* buff_out *。有代码也调用SerialPort.WriteLine()+ ReadLine()。 – 2013-04-22 13:51:05