多线程进度条的简单使用,界面不卡顿。如下图:

简单源码如下:

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 threadTest
{
/// <summary>
/// 多线程测试-简单实例
/// </summary>
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void btnThread_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
progressBar1.Maximum = 100;
progressBar1.Minimum = 0;
progressBar1.Step = 1; progressBar2.Value = 0;
progressBar2.Maximum = 100;
progressBar2.Minimum = 0;
progressBar2.Step = 1; Task.Factory.StartNew(StartProcess1);
Task.Factory.StartNew(StartProcess2);
} private void StartProcess1()
{
for (int i = 0; i < 10000; i++)
{
//执行业务逻辑。


if (i % 100 == 0)
{
Invoke(new Action(viewProcess1)); Thread.Sleep(100);
} } } private void viewProcess1()
{
progressBar1.Value += progressBar1.Step; //让进度条增加一次
lblProcess1.Text = progressBar1.Value.ToString() + "%";
} private void StartProcess2()
{
for (int i = 0; i < 10000; i++)
{ //执行业务逻辑。 if (i % 100 == 0)
{
Invoke(new Action(viewProcess2)); Thread.Sleep(100);
}
} }
private void viewProcess2()
{
progressBar2.Value += progressBar2.Step ; lblProcess2.Text = progressBar2.Value.ToString() + "%";
} }
}

C# 多线程 progressbar 界面不卡顿简单用法的更多相关文章

  1. Android 界面滑动卡顿分析与解决方案(入门)

    Android 界面滑动卡顿分析与解决方案(入门) 导致Android界面滑动卡顿主要有两个原因: 1.UI线程(main)有耗时操作 2.视图渲染时间过长,导致卡顿 目前只讲第1点,第二点相对比较复 ...

  2. DataGridView 多线程更新 数据 解决卡顿问题

    使用多线程更新DataGridView,防止页面卡顿和卡死的问题 private delegate void UpdateDataGridView(DataTable dt); private voi ...

  3. SPA程序加载首界面eclipse卡顿解决笔记

    最近在开发SPA程序项目时遇到一个问题,因为是在开发阶段,所以直接就在eclipse中启动项目. 每次进入首界面时,eclipse就会长时间卡顿,前端界面也加载不出来,很影响开发效率. 在查找问题的时 ...

  4. Vue之使用umy-ui库的u-table解决 el-table当存在大量数据时,界面操作卡顿。

    提示:一.下面的1. 对应 二.下面的1.:2.则对应2. 错误排查:在使用中如果出现:readding 'style' undefined类似错误的, 可以先排查 u-table中height的值引 ...

  5. 解决duilib使用zip换肤卡顿的问题:修改duilib并使用资源文件换肤

    转载请说明原出处,谢谢~~ 今天在做单子是,客户要求做换肤功能,为此我专门写了一个换肤函数,并且把各种皮肤资源压缩为各个zip文件来换肤.但是客户反映程序运行缓慢,我测试后发现的确明显可以看出慢了不少 ...

  6. 解决duilib使用zip换肤卡顿的问题(附将资源集成到程序中的操作方法)

    转载请说明原出处,谢谢~~ 今天在做单子是.客户要求做换肤功能,为此我专门写了一个换肤函数,而且把各种皮肤资源压缩为各个zip文件来换肤.可是客户反映程序执行缓慢,我測试后发现的确明显能够看出慢了不少 ...

  7. android中listview滑动卡顿的原因

    导致Android界面滑动卡顿主要有两个原因: 1.UI线程(main)有耗时操作 2.视图渲染时间过长,导致卡顿 http://www.tuicool.com/articles/fm2IFfU 

  8. emwin之BUTTON控件显示位图和流位图出现卡顿延迟的情况

    @2019-05-16 [问题] 参照Armfly的emwin教程第46章 BUTTON-按钮控件显示位图和流位图,实际使用时导致界面切换卡顿延迟较大的情况 [环境] F429IGT6 + W9825 ...

  9. C# Winform 多线程更新界面UI控件,解决界面卡顿问题(转)

    前言 多线程刷新界面主要用到多线程,委托,线程安全.事件等一系列高难度的C#操作. 1.使用timer控件对要刷新的控件进行定时刷新 对刷新频率要求不高的时候,可以使用该方法. 2.刷新UI控件 在开 ...

  10. 拒绝卡顿——在WPF中使用多线程更新UI

    原文:拒绝卡顿--在WPF中使用多线程更新UI 有经验的程序员们都知道:不能在UI线程上进行耗时操作,那样会造成界面卡顿,如下就是一个简单的示例: public partial class MainW ...

随机推荐

  1. Redis和Memcache区别,优缺点对比(转)

    转自 https://www.cnblogs.com/JavaBlackHole/p/7726195.html 1. Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memca ...

  2. 数据泵(impdb)导入Oracle分片的数据库dump文件

    数据泵(impdb)导入Oracle数据库 一.sqlplus登录目标数据库,创建导入的目录路径 #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建 create directory ...

  3. PostgreSQL学习笔记-7.基础知识:子查询、自增、PRIVILEGES 权限

    子查询 子查询或称为内部查询.嵌套查询,指的是在 PostgreSQL 查询中的 WHERE 子句中嵌入查询语句.一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询可以与 SELEC ...

  4. java4.switch条件语句、循环结构

    switch条件语句.循环结构 循环结构 while 1.先判断再执行代码 2.代码块至少执行0次 do-while- 1.先执行代码再执行判断 2.代码块至少执行1次 for 1.用于编写已知循环次 ...

  5. [C++]线段树 区间修改 区间查询

    线段树 区间修改 区间查询 请先阅读上一篇Bolg 算法思想 这次要引入一个核心变量: lazy 懒标记 为了达到区间修改的目的 又为了减少运算量 所以就需要引入懒标记这个变量 用来满足 即用即推 没 ...

  6. 【Windows 开发环境配置】NVIDIA 篇

    CUDA 从CUDA Toolkit Archive下载相应版本的离线安装包,这里以11.7为例. 打开安装包,在安装选项选择自定义模式,点击下一步. 在自定义安装选项中,仅选择CUDA组件(其中Ns ...

  7. 鸿蒙开发学习(一)之ArkTS

    目录 TypeScript语法 基础 module ArkTS 基本UI描述 基本概念 状态管理 页面级变量的状态管理 @State @Prop @Link 应用级变量的状态管理 开发入门 应用模型 ...

  8. tortoiseGit教程(常用图文教程)

    需求: gitTorise是git的比较好用的一个图形化工具,本文目的在于对tortoiseGit常见使用进行一个总结. 对于git常见的使用有: 1. 建立仓库 2. 提交代码 3. 更新代码 4. ...

  9. Node01-简介与安装

    01. Node.js是什么? pNode.js是一个基于V8 JavaScript引擎的JavaScript运行时环境. 也就是说: Node.js基于V8引擎来执行JavaScript的代码. V ...

  10. 聊聊分布式 SQL 数据库Doris(八)

    稀疏索引 密集索引:文件中的每个搜索码值都对应一个索引值,就是叶子节点保存了整行. 稀疏索引:文件只为索引码的某些值建立索引项. 稀疏索引的创建过程包括将集合中的元素分段,并给每个分段中的最小元素创建 ...