零基础学.NET电脑编程-多线程讲解 多线程软件设计 程序员

写代码也要读书,爱全栈,更爱生活。每日更新原创IT编程技术及日常实用视频。

我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下。

多线条

开篇

本文章属于C#零基础入门的教程。主要介绍多线程及利用多线程制作摇奖机软件

建议按照文章项目进行实战,多写代码,多练习。

这是小白学习软件开发系列课程,旨在帮助对电脑编程感兴趣的朋友学习并熟悉电脑编程软件开发C#技术。达到程序员的级别,可以进入公司进行软件编程开发。总目录:http://www.jianshu.com/p/d1add12a197e。

上一课链接:零基础学.NET电脑编程-线程 进程 多线程讲解 程序员必备

多线程

承接上篇文章,主要介绍了进程以及线程的一些基础要点。线程可能没有着重介绍。本文章着重介绍线程及多线程

线程可以理解为进程内部执行任务的一个小程序。每个进程有很多线程用来处理不同的事务。所有的线程以及其他资源组成了进程。

那这样看来,多线程就很容易理解了,多线程,其实就是在一个进程中同时运行不同的多个线程。

例如:我电脑正在运行的360极速浏览器含有多个线程在执行任务:

360极速浏览器的多个线程

一个线程感觉就完全的够用了,那为何还要多线程呢?

单线程的问题

创建Winform应用程序项目,在界面添加按钮,实现不断更换按钮的内容:

不断更换内容

循环改变内容

我们感觉效果应该是按钮的内容不断的进行变化直到100000.但是:

运行效果

点击按钮之后,发现界面出现假死,不管如何拖动,界面都不动。等待一段时间之后。按钮内容变成了99999。

分析原因:

我们写的项目程序,默认是单线程的,也就是只有UI线程。用来进行界面绘制等作用。当进行长时间的循环操作时,就造成了UI线程被占用的问题。所以会导致界面卡死现象。等待循环执行完毕,则UI线程空闲可以进行界面的绘制了。

使用多线程

这时候就需要用到多线程技术了。我们一般把这种耗时的操作放入新的独立的线程中进行执行。

创建多线程:

多线程执行耗时操作

同时,在不同的线程之间是不能跨线程操作控件的。所以:

跨线程访问控件

这里我们先禁止掉对跨线程控件使用的检测,下篇讲解,多线程访问控件:

禁止跨线程访问控件的检测

此时,运行:

多线程访问

线程传递参数

实现在UI线程传递开始的数值,实现在这个数值开始改变按钮内容:

带参数的多线程任务

未完待续..每日更新,请关注哦~

END.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我是攻城师

理解BitMap算法的原理

位图:一种常用的数据结构,代表了有限域中的稠集(dense set),每一个元素至少出现一次,没有其他的数据和元素相关联。在索引,数据压缩,海量数据处理等方面有...

24230
来自专栏GreenLeaves

TFS2018环境搭建一硬件要求

TFS可以安装在Windows Server和Windows PC操作系统中,但是TFS2018和2018只支持64位操作系统中,早期的版本没有操作系统的位数限...

40430
来自专栏chenssy

多线程:为什么在while循环中加入System.out.println,线程可以停止

这个我们都知道,由于 stopReqested 的更新值在主内存中,而线程栈中的值不是最新的,所以会一直循环,线程并不能停止。加上 Volatile 关键字后,...

21240
来自专栏数据结构笔记

python基础类型(一):字符串和列表

注意到最后三个的单双引号是嵌套使用的,但是最后一个的使用方法是错误的,因为当我们混合使用两种引号时必须有一种用来划分字符串的边界,即在两边的引号不能出现在字符串...

13720
来自专栏机器之心

Diss所有深度生成模型,DeepMind说它们真的不知道到底不知道什么

深度学习在应用层面获得了巨大成功,这些实际应用一般都希望利用判别模型构建条件分布 p(y|x),其中 y 是标签、x 是特征。但这些判别模型无法处理从其他分布中...

11410
来自专栏苦逼的码农

一些常用的算法技巧总结

数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些...

20830
来自专栏编程坑太多

『高级篇』docker之Mesos集群架构图(23)

11540
来自专栏smy

一张图解释负载均衡

首先当大量用户访问时候,先请求到nignx服务器,因为nignx对于高并发支持较好,所以由nignx服务器将访问需求分配给不同的apache服务器,apache...

20230
来自专栏Python专栏

200行代码,一行行教你自制微信机器人

1) 用一个windows客户端工具运营公众号,真的很局限。虽然工具的功能很强大,能自动添加好友,自动拉好友入群,关键字回复等等,但是有一个绕不开的点,它是一款...

60720
来自专栏大数据文摘

迷人又诡异的辛普森悖论:同一个数据集是如何证明两个完全相反的观点的?

在辛普森悖论中,餐馆可以同时比竞争对手更好或更差,锻炼可以降低和增加疾病的风险,同样的数据集能够用于证明两个完全相反的论点。

14930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励