C# 线程 计划任务

using System.Threading;

        public void ThreadMethod()
        {
            ThreadStart ts = new ThreadStart(Method);
	    // 若带参数
            //ThreadStart ts = new ThreadStart(delegate() { Method(); });
            //ThreadStart ts = new ThreadStart(() => { Method("method with param"); });

            Thread t = new Thread(ts);
            t.IsBackground = true;
            t.Start();
        }
        public void Method()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.Write(i);
            }
            Console.Write("\n");
        }


	static void Main(string[] args)
        {
            Console.WriteLine("start");
            ThreadMethod();
            Console.WriteLine("end");
            Console.ReadLine();
        }

输出结果:
start
end
0123456789









/* 计划任务 另外开辟新线程,出错了也不影响主线程 */

//可能会出错的方法,没有try catch
private void Method(object param)
{
	dataconnection dc = new dataconnection();
	dc.datacmd("adsfdfasf insert into threadingXXXX values('" + state_param.ToString() + "*_*" + DateTime.Now.ToLongTimeString() + "')");
}

using System.Threading;
	public Timer GetTimer()
        {
            TimerCallback tcb = new TimerCallback(Method);
            Timer timer = new Timer(tcb, "method param", 0, 1000 * 10);
            return timer;
        }

using System.Threading.Tasks
        public void TaskStart()
        {
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    Task task = new Task(Method, "method param xx?");
                    task.Wait(1000 * 10);
                    task.Start();
                }
            });
        }


Application_Start:
	Application["timer"] = t.GetTimer(); 
        t.TaskStart(); 
//回收iis应用程序池可能会出现问题




// windows服务

using System.Threading.Tasks;
using System.Threading;
<span style="white-space:pre">	</span>public void TaskStart()
        {
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    Task task = new Task(Method, "method param xx?");
                    task.Wait(1000 * 10);
                    task.Start();
                    task.Wait(Timeout.Infinite);
                }
            });
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值