用定时器启动线程的方法合适吗?

phuai007 2010-10-18 02:03:06

//启动定时器
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(thread);
aTimer.Interval = 10000;
aTimer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
aTimer.Enabled = true;

private void thread(object source, System.Timers.ElapsedEventArgs e)
{
thread1 = new Thread(online);
thread1.Start();
}
public void online()
{
//MessageBox.Show("线程启动了");

//用子线程干一些事情
thread1.Abort();
}



如上面代码,会不会多此一举呢?直接用Timer做事也可以吧?
用Timer直接执行要做的事,和启用新线程做事情,那个要好些?
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ctn171 2010-10-18
  • 打赏
  • 举报
回复
线程中修改UI控件,需要调用Control.Invoke或者Control.BegainInvoke
phuai007 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linchangpeng6 的回复:]
用Timer直接执行要做的事
[/Quote]

郁闷,才发现用timer或者Thread修改form时都会抛出异常
LinChangPeng6 2010-10-18
  • 打赏
  • 举报
回复
用Timer直接执行要做的事
phuai007 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zenghd 的回复:]
System.Timers.Timer也是多线程
你可以在Elapsed里开100个线程
当然
也可以当然100个System.Timers.Timer
[/Quote]
也就是说用timer启动线程是多此一举了对吧,直接用它做事情就行了?
ZengHD 2010-10-18
  • 打赏
  • 举报
回复
System.Timers.Timer也是多线程
你可以在Elapsed里开100个线程
当然
也可以当然100个System.Timers.Timer

111,129

社区成员

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

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

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