zoukankan      html  css  js  c++  java
  • C#定时任务采用线程和队列实现

    构思:写一个全局的Queue ,  然后开一个线程去循环. 不善言语,直接看代码吧!

    public class MyQueue
    {
            
    public decimal Id { getset; }
            
    public decimal Type { getset; }
    }

    static Queue<MyQueue> TaskQueue = new Queue<MyQueue>();

    static void Main(string[] args)
    {
        ServiceStart();
        Console.ReadLine();
    }

    public static void ServiceStart()
    {
        Thread TaskThread 
    = new Thread(new ThreadStart(ThreadInvoke));
        TaskThread.IsBackground 
    = true;
        TaskThread.Start();
    }
    public static void ThreadInvoke()
    {
        
    while (true)
        {  
            
    string m_time = DateTime.Now.ToString("HH:mm:ss");
            
    if (m_time == Invoke_Time) //判断是否指定时间(Invoke_Time)
            {
                
    //InitTaskQueue();//初始化队列
                while (TaskQueue.Count > 0)
                {
                    MyQueue m_mq 
    = null;
                    
    lock (TaskQueue)
                    {
                        m_mq 
    = TaskQueue.Dequeue();
                    }
                    
    //YourMethd(m_mq.UserId, m_mq.FeedTypeId); //调用方法
                    
    //Common.Log.Logger.Info(DateTime.Now.ToString()); //记录日志
                    Thread.Sleep(100);
                }
            }
            Thread.Sleep(
    100);
        }
    }



    --------------------------------------------------------------------------
    Daniel Chow's Blog - 不管你在哪里,都要有一颗创业的心!
    http://www.cnblogs.com/DanielChow/
  • 相关阅读:
    [转]数据库表分割技术:水平分割、垂直分割、库表散列
    [转]Oracle 11g RAC SCAN ip的原理及配置
    [转]Oracle 11g R2 RAC高可用连接特性 – SCAN详解
    [转]Redis之(一)初识Redis
    Oracle笔记
    weblogic新增域并进行Jconsole监听
    Geth命令用法-参数详解 and 以太坊源码文件目录
    python闭包,看不懂请揍我
    MPT树详解
    RLP(转发注明出处)
  • 原文地址:https://www.cnblogs.com/DanielChow/p/1739974.html
Copyright © 2011-2022 走看看