关于C#中system.threading.timer的一个很初级的问题,我是新手。

daaiwubian 2008-12-18 12:22:04
namespace start_process
{
class info
{

}

class Program
{
public static void aprint(object object1)
{
Console.WriteLine("application1 is running!");
}
public static void bprint(object object2)
{
Console.WriteLine("application2 is running!");
}
static void Main(string[] args)
{
TimerCallback app1 = new TimerCallback(aprint);
TimerCallback app2 = new TimerCallback(bprint);
Timer t1 = new Timer(app1, new info(), 1000, 1000 * 60);
Timer t2 = new Timer(app2, new info(), 3000, 1000 * 60);

}
}
}
我想实现的是让aprint和bprint这两个函数轮流执行,可是实现不了,请各位大侠指教。
...全文
272 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
diy2005 2011-05-05
  • 打赏
  • 举报
回复
是这样吗?

[Quote=引用 9 楼 daaiwubian 的回复:]
我在Main()函数的末尾加了一条语句Console.ReadLine()就可以了
别人告诉我说,是因为每个timer实例启动一个线程去调用回调函数,如果没有Console.ReadLine()等待用户输入,程序就结束了,线程当然也就终止了。
其实我还是不太明白,哪位高人给补充一下啊。
看来我得加强一下线程的知识。
[/Quote]
zetee 2008-12-18
  • 打赏
  • 举报
回复
请直接用线程,不要用Timer
daaiwubian 2008-12-18
  • 打赏
  • 举报
回复
up
daaiwubian 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 journeydj 的回复:]
可以轮流执行啊 timer1的方法最后timer1.enable=false ;timer2.enable=true; timer2的方法相反就可以了。
[/Quote]
您能说的详细一些吗?System.Threading.Timer,只要初始化一个实例,那么这个实例所包含的回调方法就可以执行了吗?
长沙三毛 2008-12-18
  • 打赏
  • 举报
回复
使用多个ManualResetEvent做同步,参考《框架设计(第2版)》
Joschime 2008-12-18
  • 打赏
  • 举报
回复
学习
journeydj 2008-12-18
  • 打赏
  • 举报
回复
可以轮流执行啊 timer1的方法最后timer1.enable=false ;timer2.enable=true; timer2的方法相反就可以了。
xjw163 2008-12-18
  • 打赏
  • 举报
回复
初学者支持了
cg2003 2008-12-18
  • 打赏
  • 举报
回复
up
daaiwubian 2008-12-18
  • 打赏
  • 举报
回复
我在Main()函数的末尾加了一条语句Console.ReadLine()就可以了
别人告诉我说,是因为每个timer实例启动一个线程去调用回调函数,如果没有Console.ReadLine()等待用户输入,程序就结束了,线程当然也就终止了。
其实我还是不太明白,哪位高人给补充一下啊。
看来我得加强一下线程的知识。

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧