我使用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