在 ASP.NET 中执行预定的后台工作

2024-01-12

我需要在我的 ASP.NET 应用程序中定期执行某个任务,所以这样做:

protected void Application_Start()
{
    Worker.Start();
}

...
 public static class Worker
 {
   public static void Start()
   {
     ThreadPool.QueueUserWorkItem(o => Work());
   }
   public static void Work()
   {
      while (true)
      {
          Thread.Sleep(1200000);
          //do stuff
      }
    }
}

这种方法好吗?

我看到一个关于该网站上的徽章授予的博客是使用 asp.net 缓存 hack 完成的:https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/ https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/


您可以使用Timer http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx像这样的任务类。我在我自己的 ASP.NET 聊天模块中使用此类来在过期时间后关闭房间,并且效果很好。 我认为,这是比使用 Thread.Sleep 更好的方法 https://stackoverflow.com/questions/391621/compare-using-thread-sleep-and-timer-for-delayed-execution

下面的示例代码:

using System;
using System.IO;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Worker.Start();
            Thread.Sleep(2000);
        }

        public static class Worker
        {
            private static Timer timer;

            public static void Start()
            {
                //Work(new object());
                int period = 1000;
                timer = new Timer(new TimerCallback(Work), null, period, period);
            }

            public static void Work(object stateInfo)
            {
                TextWriter tw = new StreamWriter(@"w:\date.txt");

                // write a line of text to the file
                tw.WriteLine(DateTime.Now);

                // close the stream
                tw.Close();
            }

        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET 中执行预定的后台工作 的相关文章

随机推荐

  • 将 UILabel 文本设置为粗体[重复]

    这个问题在这里已经有答案了 如何设置文本UILabel以编程方式在 Swift 中加粗 到目前为止我的代码 var label UILabel frame theFrame label text Foo Use font的财产UILabel
  • 带有徽标图像的 django pdf

    我使用比萨创建了发票 Pdf 文本模板 但我想在 pdf 文件中显示徽标 图像 以及文本 我不知道如何在 pdf 中显示图像 我的看法如下 def generate invoice request user id None personal
  • 在 .NET Core 中将 HTML 转换为图像

    我想在 Web 服务器上将 HTML 代码转换为图像 png jpg 然后在我的 NET Core 应用程序中通过电子邮件发送图像链接 我不想购买任何第三方库 如 NReco 或 EVo 还有其他方法可以在 dotnet core 2 0
  • 有没有一种方法可以仅使用 javascript 命令来选择图像并将其复制到剪贴板?

    我想复制图像本身而不是任何文本或相关的 src 我做了一个 jsfiddle 的例子https jsfiddle net pvuefca7 1 https jsfiddle net pvuefca7 1 您可以尝试一下 发现复制文本效果很好
  • 如何在 Formik 上实现自定义 handleChange 函数?

    在输入元素中 handleChange 函数将从 onChange 事件接收事件对象 如何为如下非输入字段创建自定义 handleChange 函数 import React from react import useFormik from
  • 如何使用 XCTest 从 iOS 13 删除/重置应用程序?

    最近我开始使用 XCTest 测试 iOS 应用程序 但我发现了一些困难 主要困难是删除或重置每个测试类中的应用程序内容 我目前正在使用 XCode 11 并尝试从 iOS 13 中为每个测试类删除 重置应用程序 我已经尝试过 通过跳板删除
  • 在 adMob 中仅显示文字广告

    我已将我的 adMob 帐户更新到新版本 我只想在我的应用中显示文字广告 我如何使用新版本的 adMob 帐户做到这一点 或者 如何在新版本的 adMob 帐户中屏蔽图片广告 这可以在您的 AdMob 帐户上完成 去 AdMob gt 获利
  • 检查是否在 mySQL 的多个列之一中找到字符串

    我需要检查是否在一列或多列中找到字符串 基本上 我有一个程序可以让你检查多个字段 姓名 姓氏等 如果同时检查姓名并且用户仅输入姓名 例如 chris 则可以很容易地在 mySQL 中使用 LIKE 参数进行检查 如下所示 select fr
  • 统一访问Web服务

    我有三个 Web 服务 它们是由三个不同的供应商开发的 并且具有不同的 URL 输入参数和输出参数 它们都是 ASMX Web 服务 它们用于从第三方关系数据库中删除记录 例如我提供一个 personID 然后一个人就会从一个系统中删除 并
  • SharePoint 错误:找不到 xxxx 的 Web 应用程序

    当我尝试执行这段代码时 SPSite siteCollection new SPSite http sp devxxx 10000 它抛出以下错误 Web 应用程序位于http sp devxxx 10000 http sp devxxx
  • 从不正确的 .Rbuildignore 文件构建后,包中的整理字段中的文件丢失

    我的包的其中一个函数在构建时拒绝添加到包源中 然后在运行 R CMD 检查时失败 我的包位于github上here https github com eshilts dc crime data 文件calculate latitude an
  • 迭代 C 数组

    我有一个在程序中某处创建的结构数组 后来 我想迭代它 但我没有数组的大小 如何迭代元素 或者我需要将尺寸存储在某处吗 如果在编译时已知数组的大小 则可以使用结构大小来确定元素的数量 struct foo fooarr 10 for i 0
  • 如何解决 Arango 查询承诺错误? [复制]

    这个问题已经存在了 我一直在尝试使用肥皂消息从 Arangodb 获取查询结果到我的前端服务 Angular 4 我能够获得查询结果 但在 console log 中打印出来 但是我如何在这个功能 Service 下获取它 这样我就可以输入
  • 如何在 React Native 中创建聊天气泡的卷曲箭头/尾部

    我目前正在用反应本机制作聊天气泡 由于我是反应原生的新手 我首先尝试在浏览器上制作聊天气泡 然后尝试在反应原生中复制相同的内容 我正在努力复制反应本机中的箭头 有什么想法 建议吗 普通 HTML CSS div p class to me
  • 使用 boost asio 进行多线程 http 处理是否需要线程?

    在Boost asio中股线文档 https www boost org doc libs 1 78 0 doc html boost asio overview core strands html它说 链可以是隐式的也可以是显式的 如以下
  • 如何确保你的计算图是可微的

    一些 Tensorflow 操作 例如tf argmax 是不可微分的 即在反向传播中不计算和使用梯度 一个答案Tensorflow 哪些操作是可微分的 哪些操作是不可微分的 https stackoverflow com question
  • Django 在模板中渲染动态图像

    在 Django 视图中 我可以生成动态图像 PNG 格式的图形 并创建一个响应 该响应是我的图形的图像 我可以让它在浏览器中显示 但没有网页 它只是图像 现在我想将此图像嵌入 HTML 模板中并渲染它 我怎样才能做到这一点 这是我的第一个
  • 在C++中如何通过向量的数据获取向量的索引?

    假设我有一个vector
  • Woocommerce 3 中的自定义模板

    我正在尝试仅为一个 ID 为 5555 的产品制作一个单独的模板 从其页面中删除照片并更改块结构 覆盖此文件会影响所有产品页面 wp content plugins woocommerce templates content single
  • 在 ASP.NET 中执行预定的后台工作

    我需要在我的 ASP NET 应用程序中定期执行某个任务 所以这样做 protected void Application Start Worker Start public static class Worker public stati