zoukankan      html  css  js  c++  java
  • asp.net的web程序适用后台线程做异步任务

    耗时的任务适用异步线程来完成。

     像记录日志,发邮件,发短信,通知其他系统等。可以进行封装,让后台线程来完成,不过最好适用消息队列,redis缓存等中间件,适用定时任务来做。可以保证消息不丢失。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication2
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                ThreadPool.QueueUserWorkItem(ThreadProc,"tom");
                int a = 0;
            }
    
            static void ThreadProc(Object stateInfo)
            {
           //这里执行耗时任务
    // No state object was passed to QueueUserWorkItem, so stateInfo is null. for (int i = 0; i < 100; i++) { Thread.Sleep(200); System.Diagnostics.Debug.WriteLine("================================="+i); } } } }

    托管线程池中的线程是后台线程。 也就是说,它们的IsBackground属性是真的。

    这意味着在所有前台线程退出后,ThreadPool线程不会保持应用程序运行。

    Web程序前台线程是不会全部退出的吧?

  • 相关阅读:
    quick-cocos2dx 3.5集成protobuf
    lua和luajit在cocos2dx mac模拟器的简单测试
    cocos2dx-lua手游客户端框架设计
    cocos2dx动画技术选型
    lua中的面向对象
    html 学习
    OC 与js 互相调用
    Carthage的安装和使用
    Bomb后端云使用
    FMDB简单使用
  • 原文地址:https://www.cnblogs.com/Tpf386/p/11313716.html
Copyright © 2011-2022 走看看