C# 启动保持活动状态的非阻塞线程的可能方法

C# 启动保持活动状态的非阻塞线程的可能方法,c#,.net-4.0,C#,.net 4.0,启动非阻塞线程,然后运行一些基于System.Timer.Timer的任务,可能的方法是什么?正在非UI库中编写此代码。我 我们已经看到了类似的问题,关于这些问题的建议是将图书馆转换为 Windows服务-不确定这是否是我的选项 例如,Process.Start()将实现非阻塞线程,该线程实例化并执行基于计时器的函数 public void Start() { Timer t1 = new Timer(10000); Timer t2 = new Timer(15000); t

启动非阻塞线程,然后运行一些基于
System.Timer.Timer
的任务,可能的方法是什么?正在非UI库中编写此代码。我 我们已经看到了类似的问题,关于这些问题的建议是将图书馆转换为 Windows服务-不确定这是否是我的选项

例如,
Process.Start()
将实现非阻塞线程,该线程实例化并执行基于计时器的函数

public void Start()
{
   Timer t1 = new Timer(10000);
   Timer t2 = new Timer(15000);
   t1.Elapsed += new ElapsedEventHandler(T1Task);
   t2.Elapsed += new ElapsedEventHandler(T2Task);
   t1.Enabled = true;
   t2.Enabled = true;

   // the following is blocking, of course 
   while (true)
   {
     Thread.sleep(1000);
   }
}

在上面的代码中,如果通过WinForm调用库调用,GUI显然会阻塞。

只需使用System.Threading.Timer。它是非阻塞的,在非UI线程上触发事件。

请不要在标题前面加“.NET 4.0[c#]:”之类的前缀。这就是标签的用途。