首页 > 解决方案 > c# windows service - 如何调度多个任务

问题描述

我有一个Windows Service使用.C#timers

/// <summary>
        /// Intialize task Timers
        /// </summary>
        protected void InitializeService()
        {
            
            if (_model != null )
            {
              
               // initialize employee timer
                    if (affiliate_timer == null)
                    {
                        affiliate_timer = new System.Timers.Timer();
                        affiliate_timer.AutoReset = true;
                        affiliate_timer.Interval = _model.Interval_Affiliate * 60000;
                        affiliate_timer.Elapsed += new System.Timers.ElapsedEventHandler(affiliate_timer_Elapsed);
                    }
                    // Enable affiliate Timer!!
                    affiliate_timer.Enabled = true;



                // initialize invoice timer
                    if (invoice_timer == null)
                    {
                        invoice_timer = new System.Timers.Timer();
                        invoice_timer.AutoReset = true;
                        invoice_timer.Interval = _model.Interval_Invoice * 60000;
                        invoice_timer.Elapsed += new System.Timers.ElapsedEventHandler(invoice_timer_Elapsed);
                    }
                    // Enable invoice Timer!!
                    invoice_timer.Enabled = true;
             
            }  
            
        }

每个计时器可以有不同的间隔。

我需要添加比基于动态间隔运行更多的作业或任务,但如果我需要 10 个任务,我不想创建 10 个计时器。所以也许使用System.Threading.Task库而不是计时器可以工作。

关于实现这一点的最佳方法的任何想法?当然可以同时运行多个任务。

标签: c#windows-servicesscheduled-taskstask-parallel-library

解决方案


推荐阅读