C# 使用线程的c控制台应用程序

C# 使用线程的c控制台应用程序,c#,multithreading,thread-safety,console-application,C#,Multithreading,Thread Safety,Console Application,我有一个控制台应用程序。我需要实现一个do-while循环,无限循环,以及一个线程,该线程每3秒返回一个页面中的项目列表。我该怎么做?我有一个叫做getId字符串URL的方法。如何在do while中实现线程?使用类: 计时器是为在工作线程中使用而设计的 多线程环境。服务器计时器可以在线程之间移动以 处理引发的已用事件,从而比 Windows计时器无法按时引发事件 计时器组件根据的值引发已用事件 区间性 我不会使用计时器-如果项目检索时间超过三秒会发生什么 你能忍受睡眠3000循环吗 Rgds,

我有一个控制台应用程序。我需要实现一个do-while循环,无限循环,以及一个线程,该线程每3秒返回一个页面中的项目列表。我该怎么做?我有一个叫做getId字符串URL的方法。如何在do while中实现线程?

使用类:

计时器是为在工作线程中使用而设计的 多线程环境。服务器计时器可以在线程之间移动以 处理引发的已用事件,从而比 Windows计时器无法按时引发事件

计时器组件根据的值引发已用事件 区间性


我不会使用计时器-如果项目检索时间超过三秒会发生什么

你能忍受睡眠3000循环吗

Rgds,
Martin

您是在问如何创建线程吗?我相信您提到的案例是设计问题,而不是特定于计时器的问题。如果这种情况是真实的-显然,解决方案将更为复杂,而不是简单地使用timer.appeased+=。。。还有定时器,开始。在这种情况下,使用thread.Sleep+某种同步句柄(如AutoReset/ManualReset)运行单独的线程是有意义的event@sil-是的,如果3秒钟是一个锁,这是一个解决方案,这就是为什么我问这个问题“你能接受sleep3000循环吗?”。如果不是,则更简单的解决方案是在尝试检索之前存储滴答数,从检索之后的滴答数中减去它,并将此值用作sleep参数。这将每3秒进行一次检索,除非检索时间超过3秒,在这种情况下,下一次检索将在最后一次检索后立即开始-不需要额外的线程、计时器、同步等,考虑到勾号滚动。
string url = "www";            
System.Timers.Timer timer = new System.Timers.Timer(3000);
timer.Elapsed += (o, e) => this.GetId(url);
timer.Start();