首页 > 编程语言 >c#后台任务运行

c#后台任务运行

时间:2023-10-31 14:32:01浏览次数:31  
标签:Task c# System Timer Elapsed 任务 Timers 后台任务 运行

在C#中如果想要执行一段一直运行的程序,如监听网络状态,实时读取PLC数据,遇到这种情况有多种解决方法。

方法一,可以起一个Task任务,在Task任务中写个死循环,这种死循环最好在最后写个 Thread.Sleep,不然程序会占用很高的CPU。

//用于创建并启动任务的方法。它接受一个委托作为参数,该委托定义了任务要执行的代码
Task.Factory.StartNew(() =>
{
    while(true)
    {
        Console.WriteLine("一直运行的代码");
        Thread.Sleep(10);
    }
}, TaskCreationOptions.LongRunning);//选项:这是一个用于指定任务类型的选项。使用LongRunning选项可以告诉任务调度器,该任务是一个长时间运行的任务,从而使任务在一个单独的线程上执行。

方法二 System.Timers.Timer

//定义Timer
System.Timers.Timer Timers_Timer = new System.Timers.Timer();
//手动设置Timer,开始执行
Timers_Timer.Interval = 20;
Timers_Timer.Enabled = true;
// AutoReset属性决定计时器是不是要发起一次事件然后停止,还是进入开始/等待的循环。
 Timers_Timer.AutoReset = true;
Timers_Timer.Elapsed += new System.Timers.ElapsedEventHandler(Timers_Timer_Elapsed); 
//一直运行的循环
void Timers_Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{ 
Thread.Sleep(1000);
}

标签:Task,c#,System,Timer,Elapsed,任务,Timers,后台任务,运行
From: https://blog.51cto.com/u_12828212/8105215

相关文章

  • 悠络客荣膺CPSE安博会最高荣誉——金鼎奖
    10月24日,第十九届CPSE安博会金鼎奖、百强工程商颁奖典礼暨欢迎晚宴在深圳隆重举行。经过专业评审团队对产品的品质、性能、市场表现、应用价值等多方面因素的权威评估,第十九届CPSE安博会最高荣誉奖“金鼎奖”获奖名单正式揭晓。悠络客UMind-智慧零售/家庭/政企AI解决方案凭借“用软......
  • selenium+python,自动获取cookie登录
     一、通过cookie一直保持自动登录状态1.手动操作原理:保持自动登录状态1.通过cookie信息的唯一标识ID2.登录后一直保持不退出状态,就可以实现自动登录  登录后,session唯一标识:如果当前是登录状态,那就是登录。如果不是登录状态,就不是登录的。如何查看是否登录状态?浏览器......
  • React学习笔记15-13-setState同步异步问题
    先说结论:setState处在同步的逻辑中会异步更新状态,更新真实dom。连续调用setState不会连续进行虚拟dom的对比和页面的更新setState处在异步的逻辑中,同步更新状态,更新真实dom。 1.同步状态先看同步状态/*eslint-disablereact/no-direct-mutation-state*/importRea......
  • [RoarCTF 2019]Easy Calc
    题目一打开,是一个计算器。主页源代码如下,这里可以看到有一个calc.php文件,并且提示存在WAF(疑)。<!--I'vesetupWAFtoensuresecurity.--><script>$('#calc').submit(function(){$.ajax({url:"calc.php?num="+encodeURIComponent($(&q......
  • [ACTF2020 新生赛]BackupFile
    题目提示需要寻找备份文件。通过字典,找到后台存在一个名为:index.php.bak的文件,打开后源码如下:<?phpinclude_once"flag.php";if(isset($_GET['key'])){$key=$_GET['key']; //判断一:是否为数字,此处无法绕过if(!is_numeric($key)){exit("Justnum......
  • [BJDCTF2020]Easy MD5
    打开题目,发现是一个输入框,抓响应包后发现存在如下提示:Hint:select*from'admin'wherepassword=md5($pass,true)。当PHP的md5()函数的第二个参数为True时,会将string转换为16字符的二进制格式,如使用一些特殊的$pass,则可以绕过以上SQL查询,如:ffifdyop,ffifdyop计算......
  • test_your_nc
    IDA分析。直接nc连接即可。......
  • DC电源模块去除输出电源中的高频噪声及杂波
    BOSHIDADC电源模块去除输出电源中的高频噪声及杂波DC电源模块是电路中常用的部件,用于提供电子元器件的工作电源。然而,在使用DC电源模块的过程中,往往会出现一些问题,比如输出电源中产生的高频噪声和杂波。这些问题不仅会影响电路的稳定运行,还会影响到元器件的寿命,因此需要采取措施......
  • 网页CAD(web cad sdk)前端直接获取修改转换后的图纸数据
    前言有用户集成网页CAD之后,需要提取图纸的各种信息和数据,下面我们讲一下Web版CAD如何在前端直接提取修改和转换后的图纸信息,没有集成过在线CAD的小伙伴可以先看一下快速入门在mxcad中转换后的图纸(.mxweb格式的文件)可以通过mxcadnpm包得到图纸的各种数据,如图层、文字样式、图......
  • C++基础杂记(2)
    将数组传入函数禁止修改数组的值函数的地址与函数的指针函数的指针数组函数的static与inline引用左值和引用传参C++11的数组for循环64位Linux操作系统中C++中常见基本类型所占字节数C++11类成员变量的初始化默认成员初始化器成员变量初始化列表委......