【发布时间】:2011-09-20 10:49:53
【问题描述】:
我有一个控制台应用程序。我需要实现一个无限循环的 do while 和一个每 3 秒从页面返回项目列表的线程。我怎样才能做到这一点?我有一个叫做 getId(string URL) 的方法。如何在do while中实现线程?
【问题讨论】:
-
你问的是如何创建线程?
标签: c# multithreading thread-safety console-application
我有一个控制台应用程序。我需要实现一个无限循环的 do while 和一个每 3 秒从页面返回项目列表的线程。我怎样才能做到这一点?我有一个叫做 getId(string URL) 的方法。如何在do while中实现线程?
【问题讨论】:
标签: c# multithreading thread-safety console-application
使用System.Timers.Timer 类:
string url = "www";
System.Timers.Timer timer = new System.Timers.Timer(3000);
timer.Elapsed += (o, e) => this.GetId(url);
timer.Start();
Timer 设计用于与工作线程一起使用 多线程环境。服务器计时器可以在线程之间移动到 处理引发的 Elapsed 事件,从而获得比 Windows 计时器按时引发事件。
Timer 组件根据以下值引发 Elapsed 事件 区间属性
【讨论】:
我不会使用计时器 - 如果项目检索时间超过三秒会发生什么?
你能忍受 sleep(3000) 循环吗?
Rgds, 马丁
【讨论】:
timer.Elapsed +=... and timer.Start()。对于这种情况,使用 Thread.Sleep + 某种同步句柄(如 AutoReset/ManualReset 事件)运行单独的线程是有意义的