小编dte*_*123的帖子

TimerCallback没有返回值C#

System.Threading.Timer用来创建一个计时器,将一个字符串打印到一个串口,然后每秒从另一个串口读取.我试图通过向我的TimerCallback函数发送参数来做到这一点.下面是我的代码,其中初始化计时器和回调函数的代码.

初始化:

TimerCallback tcb = Timer_func(buff_out, send_port, recv_port);
AutoResetEvent autoEvent = new AutoResetEvent(false);
Timer aTimer = new Timer(tcb,autoEvent,1000,1000);
Run Code Online (Sandbox Code Playgroud)

回调函数:

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);
}
Run Code Online (Sandbox Code Playgroud)

初始化发生在Main()函数中,两个函数都在同一个类中.

当我按原样编译代码时,我收到错误CS0161:"并非所有代码路径都返回一个值".为了解决这个问题我已经添加return 1;到该函数的末尾,但后来我收到错误CS0029:"无法显式地将类型'int'转换为'System.Threading.Timer'.

我做错了什么,我该如何解决它.(C#新手)先感谢您!

c# multithreading return timer callback

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

标签 统计

c# ×1

callback ×1

multithreading ×1

return ×1

timer ×1