当前位置: 首页 > news >正文

C# task多线程创建,暂停,继续,结束使用

1、多线程任务创建

 private void button1_Click(object sender, EventArgs e) //创建线程{CancellationToken cancellationToken = tokensource.Token;Task.Run(() =>  //模拟耗时任务{for (int i = 0; i < 100; i++){if (cancellationToken.IsCancellationRequested){return;}m.WaitOne(); //当m等于true,才会往下执行,否则一直在此等待textBox1.Text = i.ToString();Thread.Sleep(1000);}}, cancellationToken);//绑定令牌到多线程}

2、线程暂停

 private void button2_Click(object sender, EventArgs e) //暂停线程{m.Reset();  //阻塞线程}

3、线程继续

   private void button3_Click(object sender, EventArgs e) //继续线程{m.Set();}

4、取消线程

   private void button4_Click(object sender, EventArgs e) //取消线程{tokensource.Cancel();}

完整版代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();CheckForIllegalCrossThreadCalls = false;}ManualResetEvent m = new ManualResetEvent(true); //实例化阻塞事件CancellationTokenSource tokensource=new CancellationTokenSource(); //声明令牌private void button1_Click(object sender, EventArgs e) //创建线程{CancellationToken cancellationToken = tokensource.Token;Task.Run(() =>  //模拟耗时任务{for (int i = 0; i < 100; i++){if (cancellationToken.IsCancellationRequested){return;}m.WaitOne(); //当m等于true,才会往下执行,否则一直在此等待textBox1.Text = i.ToString();Thread.Sleep(1000);}}, cancellationToken);//绑定令牌到多线程}private void button2_Click(object sender, EventArgs e) //暂停线程{m.Reset();  //阻塞线程}private void button3_Click(object sender, EventArgs e) //继续线程{m.Set();}private void button4_Click(object sender, EventArgs e) //取消线程{tokensource.Cancel();}}
}

软件界面如下

相关文章:

C# task多线程创建,暂停,继续,结束使用

1、多线程任务创建 private void button1_Click(object sender, EventArgs e) //创建线程{CancellationToken cancellationToken tokensource.Token;Task.Run(() > //模拟耗时任务{for (int i 0; i < 100; i){if (cancellationToken.IsCancellationRequested){return;…...

界面控件DevExpress WinForms(v23.2)下半年发展路线图

本文主要概述了官方在下半年&#xff08;v23.2&#xff09;中一些与DevExpress WinForms相关的开发计划&#xff0c;重点关注的领域将是可访问性支持和支持.NET 8。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能…...

vue实现按需加载的多种方式

1.import动态导入 const Home () > import( /* webpackChunkName: "Home" */ /views/Home.vue); 2.使用vue异步组件resolve 这种方式没有成功 //const 组件名 resolve > require([‘组件路径’],resolve) //&#xff08;这种情况下一个组件生成一个js文件…...

el-switch组件在分页情况下的使用

1.需求: 系统使用者在点击发布状态的开关后,可以对应的发布或者取消发布试卷 2.前端代码: html代码(这里不贴其他表单项的代码了,直接贴el-Switch组件的代码): <!-- qwy: 使用Switch组件,设置发布状态,业务逻辑:在页面初始渲染的时候应该查询发布状态,以根据状…...

【100天精通python】Day49:python web编程_web框架,Flask的使用

目录 1 Web 框架 2 python 中常用的web框架 3 Flask 框架的使用 3.1 Flask框架安装 3.2 第一个Flask程序 3.3 路由 3.3.1 基本路由 3.3.2 动态路由 3.3.3 HTTP 方法 3.3.4 多个路由绑定到一个视图函数 3.3.5 访问URL 参数的路由 3.3.6 带默认值的动态路由 3.3.7 带…...

sql 查重以及删除重复

查重 select count(1),content from t_mall_longping group by content having count(1)>1 稳重删除重复&#xff08;技术来源于 百度文心一言&#xff0c;好屌呀&#xff09; CREATE TABLE tmp_duplicates ( hxid INT PRIMARY KEY );INSERT INTO tmp_duplicates SEL…...

Flux语言 -- InfluxDB笔记二

1. 基础概念理解 1.1 语序和MySQL不一样&#xff0c;像净水一样通过管道一层层过滤 1.2 不同版本FluxDB的语法也不太一样 2. 基本表达式 import "array" s 10 * 3 // 浮点型只能与浮点型进行运算 s1 9.0 / 3.0 s2 10.0 % 3.0 // 等于 1 s3 10.0 ^ 3.0 // 等于…...

18.Oauth2-微服务认证

1.Oauth2 OAuth 2.0授权框架支持第三方支持访问有限的HTTP服务&#xff0c;通过在资源所有者和HTTP服务之间进行一个批准交互来代表资源者去访问这些资源&#xff0c;或者通过允许第三方应用程序以自己的名义获取访问权限。 为了方便理解&#xff0c;可以想象OAuth2.0就是在用…...

vue和node使用websocket实现数据推送,实时聊天

需求&#xff1a;node做后端根据websocket&#xff0c;连接数据库&#xff0c;数据库的字段改变后&#xff0c;前端不用刷新页面也能更新到数据&#xff0c;前端也可以发送消息给后端&#xff0c;后端接受后把前端消息做处理再推送给前端展示 1.初始化node&#xff0c;生成pac…...

汽车电子笔记之:基于AUTOSAR的多核监控机制

目录 1、概述 2、系统监控的目标 2.1、任务的状态机 2.2、任务服务函数 2.3、任务周期性事件 2.4、时间监控的指标 2.5、时间监控的原理 2.6、CPU负载率监控原理 2.6.1、设计思路 2.6.2、监控方法的评价 3、基于WDGM模块热舞时序监控方法 3.1、活跃监督 3.2、截至时…...

GDB 源码分析 -- 断点源码解析

文章目录 一、断点简介1.1 硬件断点1.2 软件断点 二、断点源码分析2.1 断点相关结构体2.1.1 struct breakpoint2.1.2 struct bp_location 2.2 断点源码简介2.3 break设置断点2.4 enable break2.5 disable breakpoint2.6 delete breakpoint2.7 info break 命令源码解析 三、Linu…...

SpringMVC概述与简单使用

1.SpringMVC简介 SpringMVC也叫做Spring web mvc,是 Spring 框架的一部分&#xff0c;是在 Spring3.0 后发布的。 2.SpringMVC优点 1.基于 MVC 架构 基于 MVC 架构&#xff0c;功能分工明确。解耦合&#xff0c; 2.容易理解&#xff0c;上手快&#xff1b;使用简单。 就可以…...

传输层—UDP原理详解

目录 前言 1.netstat 2.pidof 3.UDP协议格式 4.UDP的特点 5.面向数据报 6.UDP的缓冲区 7.UDP使用注意事项 8.基于UDP的应用层协议 总结 前言 在之前的文章中为大家介绍了关于网络协议栈第一层就是应用层&#xff0c;包含套接字的使用&#xff0c;在应用层编码实现服务…...

CK-GW06-E03与汇川PLC的EtherNet/IP通信

准备阶段&#xff1a; CK-GWO6-E03网关POE交换机网线汇川PLC编程软件汇川AC801-0221-U0R0型号PLC 1.打开汇川PLC编程软件lnoProShop(V1.6.2)SP2 新建工程&#xff0c;选择对应的PLC型号&#xff0c;编程语言选择为“结构化文本&#xff08;ST&#xff09;语言”&#xff0c;然…...

UI界面自动化BagePage

常用basepage模块代码 # -*- coding: utf-8 -*- # Desc: UI自动化测试的一些基础浏览器操作方法# 第三方库导入 import time from logging import config import randomimport allure from selenium.webdriver.common.alert import Alert from selenium.webdriver.remote.webe…...

北京开发APP的费用明细

开发APP项目时&#xff0c;在功能确定后需要知道有哪些可能的费用&#xff0c;安排项目预算。北京开发APP的费用明细可能会包括以下几个部分&#xff0c;每个部分都会产生一些费用。今天和大家分享APP费用明细有哪些&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&…...

2023年MySQL核心技术第一篇

目录 一 . 存储&#xff1a;一个完整的数据存储过程是怎样的&#xff1f; 1.1 数据存储过程 1.1.1 创建MySQl 数据库 1.1.1.1 为什么我们要先创建一个数据库&#xff0c;而不是直接创建数据表&#xff1f; 1.1.1.2基本操作部分 1.2 选择索引问题 二 . 字段&#xff1a;这么多的…...

通讯协议056——全网独有的OPC HDA知识一之接口(十一)IOPCHDA_Playback

本文简单介绍OPC HDA规范的IOPCHDA_Playback&#xff08;可选&#xff09;接口方法&#xff0c;更多通信资源请登录网信智汇(wangxinzhihui.com)。 此接口支持历史服务器的播放功能。这提供了从历史服务器获得初始数据集的能力&#xff0c;然后获得历史数据的持续更新。这与异…...

数学建模:数据的预处理

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 数据预处理数据变换数据清洗缺失值处理异常值处理 数据预处理 数据变换 常见的数据变换的方式&#xff1a;通过某些简单的函数进行数据变换。 x ′ x 2 x ′ x x ′ log ⁡ ( x ) ∇ f ( x k )…...

Linux土遁术之监测监测进程打开文件

分析问题过程中&#xff0c;追踪进程打开的文件可以在许多不同情况下有用&#xff0c;体现在以下几个方面&#xff1a; 故障排除和调试&#xff1a; 当程序出现问题、崩溃或异常行为时&#xff0c;追踪进程打开的文件可以帮助您找出问题的根本原因。这有助于快速定位错误&…...

【笔记】旧AI,新人类

AI擅长"旧"&#xff0c;人类擅长"新" 关于人机分工的一点思考 不久前&#xff0c;一场颇具戏剧性的"人机对决"在餐饮界引起了不小的波澜。"美膳狮"智能炒菜机器人与湘菜厨师杨孙同台竞技&#xff0c;共同炒制三道菜&#xff1a;XO酱笋…...

手把手教你用AsyncOpenAI库,为自部署的Llama 3模型打造一个高速问答接口

基于AsyncOpenAI与Llama 3构建高并发问答接口的工程实践 在当今AI应用开发领域&#xff0c;如何将开源大模型高效地集成到生产环境中&#xff0c;是许多开发者面临的挑战。特别是当我们需要处理大量并发请求时&#xff0c;传统的同步调用方式往往成为性能瓶颈。本文将深入探讨…...

Windows HEIC缩略图解决方案:告别格式壁垒,实现跨平台无缝浏览

Windows HEIC缩略图解决方案&#xff1a;告别格式壁垒&#xff0c;实现跨平台无缝浏览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails…...

嵌入式软件定时器原理与实现:从硬件限制到多任务调度

1. 软件定时器&#xff1a;从硬件限制到软件自由的桥梁在嵌入式开发里&#xff0c;定时器是个绕不开的话题。无论是让LED灯定时闪烁&#xff0c;还是需要周期性地采集传感器数据&#xff0c;甚至是实现一个简单的按键消抖&#xff0c;都离不开定时功能。硬件定时器&#xff08;…...

如何通过编译优化与隐私增强实现浏览器性能飞跃:Thorium项目技术深度解析

如何通过编译优化与隐私增强实现浏览器性能飞跃&#xff1a;Thorium项目技术深度解析 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towa…...

别再傻傻重启了!用JRebel给IDEA装上‘秒级热更新’,Spring Boot开发效率翻倍

告别低效重启&#xff1a;用JRebel解锁Spring Boot开发的终极热更新体验 每次修改几行代码就要等待漫长的应用重启&#xff1f;Spring Boot DevTools的热加载功能已经无法满足你对开发效率的极致追求&#xff1f;作为长期奋战在Java开发一线的工程师&#xff0c;我深知这种重复…...

告别论文焦虑:百考通AI,让你的本科毕业论文像“闯关升级”一样简单

又到了一年毕业季&#xff0c;对于广大本科生而言&#xff0c;那座名为“毕业论文”的大山&#xff0c;是否又一次压得你喘不过气&#xff1f;面对空白的Word文档&#xff0c;你是否感到无从下手&#xff1f;导师的催促、复杂的格式、浩如烟海的文献、以及令人心慌的查重……这…...

Linux网络数据包处理全流程:从系统调用到网卡驱动的深度解析

1. 项目概述&#xff1a;从代码到比特流的旅程如果你在Linux上写过网络程序&#xff0c;无论是用C的send()还是Python的socket.sendall()&#xff0c;你可能都曾好奇过&#xff1a;我调用完这个函数之后&#xff0c;数据到底经历了什么才变成网线上的电信号&#xff1f;反过来&…...

STM32串口转RS-485双机通信:硬件设计、软件驱动与调试全解析

1. 项目概述&#xff1a;从串口到485&#xff0c;双机通信的工业级实现搞嵌入式开发&#xff0c;尤其是用STM32做控制&#xff0c;串口通信&#xff08;UART&#xff09;绝对是绕不开的基础。但如果你想把两个STM32板子连起来&#xff0c;距离稍微远一点&#xff0c;或者环境里…...

手把手教你用STM32实现国标交流充电桩的CP信号检测(附完整代码)

手把手教你用STM32实现国标交流充电桩的CP信号检测&#xff08;附完整代码&#xff09; 在电动汽车充电基础设施快速发展的今天&#xff0c;交流充电桩因其成本优势和广泛适用性成为市场主流。作为嵌入式开发者&#xff0c;理解并实现充电控制导引&#xff08;CP&#xff09;信…...