首页 > 编程语言 >Task C#后台任务

Task C#后台任务

时间:2025-01-23 09:01:36浏览次数:1  
标签:Task Console cts C# result WriteLine 后台任务

Task C#后台任务

C# 创建一个没有返回值的任务

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建并启动一个没有返回值的任务
        Task task1 = Task.Run(() =>
        {
            Console.WriteLine("Task 1 is running on a thread pool thread.");
            Thread.Sleep(2000); // Simulate work with Sleep
            Console.WriteLine("Task 1 has completed.");
        });
        // 创建并启动一个有返回值的任务
        Task<int> task2 = Task.Run(() =>
        {
            Console.WriteLine("Task 2 is performing some calculations...");
            Thread.Sleep(1500); // Simulate work with Sleep
            return 42; // Return the result of the calculation
        });
        // Wait for both tasks to complete and handle their results.
        System.Console.WriteLine("Main thread is waiting for Task 1 to complete.");
        await Task.WhenAll(task1, task2);

        // Get the result from task2.
        int result = await task2;
        Console.WriteLine($"The result from Task 2 is: {result}");
    }
}

C# 创建一个可以取消的任务


class Program
{
    static async Task Main(string[] args)
    {
        CancellationTokenSource cts = new CancellationTokenSource();
        try
        {
            Task task3 = Task.Run(
                () =>
                {
                    while (true)
                    {
                        if (cts.Token.IsCancellationRequested)
                        {
                            Console.WriteLine("Cancellation requested, task 3 is stopping.");
                            break;
                        }
                        Console.WriteLine("Task 3 is working...");
                        Thread.Sleep(500);
                    }
                },
                cts.Token
            );

            // Let task3 run for a short time before cancelling it.
            await Task.Delay(2000);
            // 只要cts.Cancel()就会一直运行,

标签:Task,Console,cts,C#,result,WriteLine,后台任务
From: https://www.cnblogs.com/zhuoss/p/18686835

相关文章

  • 《SpringBoot》EasyExcel实现百万数据的导入导出
    24年11月6日消息,阿里巴巴旗下的JavaExcel工具库EasyExcel近日宣布,将停止更新,未来将逐步进入维护模式,将继续修复Bug,但不再主动新增功能。EasyExcel是一款知名的JavaExcel工具库,由阿里巴巴开源,作者是玉箫,在GitHub上有30k+stars、7.5kforks。据了解,EasyExcel作者玉箫去......
  • CF2063C Remove Exactly Two
    前言提供一个不需要分讨的\(O(Tnlogn)\)做法。解题思路首先会想到选出度数最大和次大的两个点删除。但是注意到,有三个度数都为最大的点连在一起的时候,你不能先删中间的点。(可以随便举个例子手玩一下。)这时有人就开始思考dp或者分类讨论了。这时候想我这种没有思维的人......
  • CSP-S储备营day1
    ###枚举与搜索-枚举:框定一个范围,遍历其中的所有东西。比如枚举左右端点成为一个区间。-搜索:从一个初始状态出发,一步一步走到相邻的状态,遍历能走到的所有东西。比如走迷宫。本质都是**用各种各样的策略去找东西**####枚举优化1.改变枚举对象:比如说从枚举左右端点改成枚举......
  • SeleniumBasic定位表格与单元格
    Rem请手动添加引用SeleniumBasic.tlbOptionExplicitPrivateWDAsSeleniumBasic.IWebDriverSubBaidu()OnErrorGoToErr1DimServiceAsSeleniumBasic.ChromeDriverServiceDimOptionsAsSeleniumBasic.ChromeOptionsSetWD=NewSeleniumBasic......
  • [ARC178C] Sum of Abs 2 题解
    首先想到能不能用差分搞搞,但是给自己绕进去了/kel我们不妨给\(\{b_L\}\)定个不降的序(如果打在数轴上,显然序和答案无关),于是可以拿掉绝对值。注意到这个和式(记其结果为\(x\))中每个\(b_i\)的贡献系数\(c_i=2i-L-1\),于是有:\[x=\sum_{i=1}^{L}b_ic_i\]直接做不......
  • asyncAPI
    async.cu#include<stdio.h>#include<cuda_runtime.h>#include<cuda_profiler_api.h>template<typenameT>voidcheck(Tresult,charconst*constfunc,constchar*constfile,intconstline){if(result){......
  • 使用 Java 和 Tesseract 进行验证码识别
    验证码(CAPTCHA)在网站和应用中被广泛用作防止自动化操作的验证机制。如果想要识别验证码,可以借助OCR(光学字符识别)技术实现自动识别。本文将介绍如何使用Java和TesseractOCR引擎来实现验证码的识别。环境准备安装TesseractOCR引擎Tesseract是一个开源的OCR引擎,必须......
  • JavaScript系列(40)--虚拟DOM实现详解
    JavaScript虚拟DOM实现详解......
  • JavaScript系列(39)-- Web Workers技术详解
    JavaScriptWebWorkers技术详解......
  • python实战(十五)——中文手写体数字图像CNN分类
    一、任务背景    本次python实战,我们使用来自Kaggle的数据集《ChineseMNIST》进行CNN分类建模,不同于经典的MNIST数据集,我们这次使用的数据集是汉字手写体数字。除了常规的汉字“零”到“九”之外还多了“十”、“百”、“千”、“万”、“亿”,共15种汉字数字。二、......