看着好像做服务比较合适?
根据你的问题的描述,你的目的估计是这样子的:
有一个工作流程,这个工作流程有很多个步骤。
你想要一个 类似工人的线程 一直在做社个事情 。这个工人是不能休息的,它得随时起来待命。
是这个样子么?
如果想要完成这样子的想法,你让一个线程常驻内存,这样子的设计确实有点拙劣,其实还有更好的设计
能说说具体怎么常驻内存,怎么做?
@成群:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication4 { class Program { /// <summary> /// 定义一个全局变量,给Timer传递 控制 参数 /// </summary> public static volatile string GlobalString = ""; /// <summary> /// 定义一个Timer,timer其实是一个常驻内存的线程,我们只需要稍加修改一下它就OK了 /// </summary> public static System.Timers.Timer timer = new System.Timers.Timer(); static void Main(string[] args) { timer.Interval = 1000; timer.Elapsed += timer_Elapsed; timer.Enabled = false; timer.Start(); Console.ReadKey(); } static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //传递不同的控制参数就可以实现不同的控制 if (GlobalString=="Init") { } else if (GlobalString == "Do") { } else if (GlobalString=="End") { } else { Console.WriteLine("现在执行谁?"); } } } }
ConcurrentQueue<Action> jobs=new ...;
var td=new Thread(()=>{
while(true){
Action task;
if(jobs.TryDequeue(out task))
{
task();
}
else
{
Thread.Sleep(1);
}
}
});
td.Start();