请选择 进入手机版 | 继续访问电脑版

工业软件开发社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2212|回复: 32

【C# 教程】【winform】 跨线程更新界面的操作及原理说明

[复制链接]

41

主题

222

帖子

3107

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3107
发表于 2019-5-28 21:54:08 | 显示全部楼层 |阅读模式

今天来说说大家在C#的桌面程序开发过程中的,经常碰到的一个问题,就是跨线程更新UI的问题,本文的主要主要目的就是为了说明,为什么有个错误,以及怎么解决?以及更加深入的原理说明。好了,我们开始吧。

第一步,先新建一个项目吧。
[attach]325[/attach]

应该没有什么问题吧,接下来我们双击按钮的操作,开始写代码。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Threading;

  11. namespace WindowsFormsApp1
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1( )
  16.         {
  17.             InitializeComponent( );
  18.         }

  19.         private void Button1_Click( object sender, EventArgs e )
  20.         {
  21.             // 模拟一个很长时间的操作
  22.             Thread.Sleep( 3000 );
  23.             // 更新UI信息
  24.             textBox1.Text = "123";
  25.         }
  26.     }
  27. }
复制代码
当我们这么写以后,就会发现个问题,当点击按钮的时候,界面就会变得很卡很卡,体验效果很差,虽然过3秒后,界面恢复了,但是对于用户肯定是不能忍的。所以,我们会使用线程的方式来完成这件事。

购买主题 已有 95 人购买  本主题需向作者支付 2 金钱 才能浏览
回复

使用道具 举报

1

主题

26

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2019-5-28 22:23:06 | 显示全部楼层
老写的真不错,辛苦了
回复

使用道具 举报

0

主题

7

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2019-5-28 22:23:30 | 显示全部楼层
学习了,用多线程经常碰到这个问题。
回复

使用道具 举报

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2019-5-28 22:34:14 来自手机 | 显示全部楼层
看不见呢
回复

使用道具 举报

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2019-5-29 05:29:37 | 显示全部楼层
学习了,写的很详细
回复

使用道具 举报

0

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2019-5-29 07:35:12 | 显示全部楼层
不错,由浅入深,演变过程一目了然,学习了!
回复

使用道具 举报

0

主题

7

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2019-5-29 08:59:17 | 显示全部楼层
这个问题也困扰着我!
回复

使用道具 举报

0

主题

3

帖子

1

积分

新手上路

Rank: 1

积分
1
发表于 2019-5-29 09:04:18 来自手机 | 显示全部楼层
没有金币...
回复

使用道具 举报

5

主题

121

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2019-5-29 09:12:19 | 显示全部楼层
原来还有这种高级写法啊 期待大佬的下一次更新
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2019-5-29 09:17:56 | 显示全部楼层
凑个金币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|bbs.hslcommunication.cn

GMT+8, 2019-8-23 04:30 , Processed in 0.132912 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表