C# 窗体控件BackgroundWorker

embedded/2024/9/23 10:22:11/

介绍

        如果只有一个主线程,那么当窗体执行一些循环之类的操作时,窗体界面的控件将无法操作,因为该线程的资源,都拿来执行循环操作了,这是,我们可以使用Thread类来开启另一个线程,来进行繁琐冗长的循环操作,除此之外,BackgroundWorker也可以实现该效果。


构造函数

BackgroundWroker()

        使用无参构造函数创建一个backgroundWorker对象。或直接在工具栏拖动一个BackgroundWorker控件到Form界面


常用属性

CancellationPending

        如果应用程序没有取消后台操作,为false,如果使用CancelAsync()取消后台操作,为true。


IsBusy

        当使用RunWorkerAsync()执行后台操作时(即DoWork事件在执行),IsBusy属性为true,当DoWork事件执行完毕,IsBusy属性变为false。


WorkerReportsProgress

        获取或设置一个值,该值指示 BackgroundWorker 能否报告进度更新。如果设为false,那么,将不能使用ReportProgress(Int32)方法和触发ProgressChanged事件。


WorkerSupportsCancellation

        获取或设置一个值,该值指示 BackgroundWorker 是否支持异步取消。如果设为false,那么,将不能使用CancelAsync()取消后台异步执行,要一直等到DoWork事件完成为止。


常用方法

CancelAsync()

        当WorkerSupportsCancellation为true时,采用此方法可以取消backgroundWorker的后台操作。


ReportProgress(Int32)

        当WorkerReportsProgress为true,调用此方法,可以触发ProgressChanged事件,对后台操作进度进行报告。


RunWorkerAsync()

        开始执行后台操作,触发DoWork事件。


常用事件

DoWork

        调用 RunWorkerAsync() 时发生。


ProgressChanged

        调用 ReportProgress(Int32) 时发生。


RunWorkerCompleted

        当后台操作已完成(Dowork方法完成)、被取消或引发异常时发生。


http://www.ppmy.cn/embedded/24716.html

相关文章

java集合框架总结

简介 Java 集合框架(Java Collections Framework, JCF)是 Java 平台的一部分,为数据的存储和操作提供了一整套强大的接口和实现。Java 集合框架不仅仅是一些数据结构的聚合,它通过一组精心设计的接口和类提供了数据操作的各种算法…

李沐56_门控循环单元——自学笔记

关注每一个序列 1.不是每个观察值都是同等重要 2.想只记住的观察需要:能关注的机制(更新门 update gate)、能遗忘的机制(重置门 reset gate) !pip install --upgrade d2l0.17.5 #d2l需要更新import torch from tor…

9节点牛拉法matlab

潮流计算程序matlab 牛拉法 采用matlab对9节点进行潮流计算,采用牛拉法,程序运行可靠。

LinkedList

一.模拟实现 public class MyLinkedList {static class ListNode {private int val;private ListNode prev;//前驱private ListNode next;//后继public ListNode(int val) {this.val val;}}public ListNode head;//双向链表的头节点public ListNode last;//双向链表的尾巴//得…

K8s容器部署maven项目

最近在整一整套devops自动化持续集成的东西,一开始就做好了踩坑的准备。 failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题,看了一圈首次搭建k8s的都是高频出现的问题…

《资本之王》全球私募之王黑石集团成长史 - 三余书屋 3ysw.net

资本之王:全球私募之王黑石集团成长史 大家好,今天我们要解读的书叫做《资本之王》,它讲述了全球私募股权之王——黑石公司的精彩成长史。这本书为我们揭秘了私募股权这个看似神秘的行业,并让我们更深入地了解了华尔街的金融发展…

基于Unity+Vue通信交互的WebGL项目实践

unity-webgl 是无法直接向vue项目进行通信的,需要一个中间者 jslib 文件 jslib当作中间者,unity与它通信,前端也与它通信,在此基础上三者之间进行了通信对接 看过很多例子:介绍的都不是很详细,不如自己写, 注意看箭头走向 共同点:unity 打包项目都放 在 public 里面…

『大模型笔记』AI 智能体(Agent)在推理(Reasoning)、规划(Planning)与工具调度(Tool Calling)方面的研究:综合调查!

AI 智能体(Agent)在推理(Reasoning)、规划(Planning)与工具调度(Tool Calling)方面的研究:综合调查! 文章目录 o. 摘要一. Introduction1.1. Taxonomy(分类学)二. 关键考虑因素以实现有效的智能体2.1. 概述2.2. 推理和规划的重要性2.3. 有效工具调用的重要性三. 单智能体架…