C#多线程

首先我要提一点

,

关于线程的基础知识

,

一个程序

,

即一个进

,

可以有很多个线程

,

当然

,

至少要有一个线程

,

即主线程

.

信大家都知道多线程的好处吧

,

举个书上的例子

 

,Windows

在复制文件的时候

,

有个动画

,

是在复制文件过

程中进行的

,

也就是一边复制文件

,

一边播放动画

,

这个就是很

简单的多线程

,

如果没有动画

,

复制一个大文件的时候

,

我们知

 

道计算机是死机了

,

还是仍然在复制呢

???

多线程就很好的

解决了这个问题

.

懂了吧

,

,

很好

!!

那么

,

我们就开始吧

        

首先

,

我们写个简单的单线程程序

,

也就是只有程序自

己创建的那个主线程

,

没有使用多线程

创建一个新工程

,

向窗口添加一个

label

命名为

label1;

我们

要让程序运行时

label1

就显示一个数字

,

假设为

100;

通常我

们会直接在窗口加载事件中写

label1.Text = "100";

这样

,

 

,label1

果然显示了

100; 

代码如下

:(

1) 

using System; 

using System.Windows.Forms; 

namespace ThreadTest 

    

public partial class Form1 : Form 

    

        

public Form1() 

        

            

InitializeComponent(); 

        

        

private void Form1_Load(object sender, 

EventArgs e) 

        

            

label1.Text = "100"; 

        

    

很简单吧

,

看懂了吗

?? 

什么

,

没有

,

~~~

神啊

~~~

救救我吧

,

那请你在翻书

,

把最最最

最最基础的书翻出来看看里面的最最最最最简单例子

(

以后

不要说我认识你

好了,看懂的朋友继续往下看:

 

我们现在要将程序稍稍改动一下,添加一个

Button,

命名为

button1,

我们要在按下

button1

后,将

lable1

text

0

显示到

100, 

那么,

我们需要添加

button1

Click

事件

,

click

事件内

写入循环显示

0

100. 

代码如下

:(

2) 

using System; 

using System.Windows.Forms; 

namespace ThreadTest 

    

public partial class Form1 : Form 

    

        

public Form1() 

        

            

InitializeComponent(); 

        

        

private void Form1_Load(object sender, 

EventArgs e) 

        

            

label1.Text = "0"; 

        

}

        

private void button1_Click(object sender, 

EventArgs e) 

        

            

for(int i=0;i<101;i++) 

            

                

label1.Text = i.ToString(); 

            

        

    

运行一下看看

,

按一下

button1

,结果是我们一下就看到了

100

,并没有看到

0~100

的过程,为什么呢?

 

呵呵,

因为你的处理器速度太快了,

就只能看到最后的结果,

那么,怎样才能看到中间过程呢?

(

等一下再讲

我们先用函数的方式来实现上面的功能

 

写个名为

run

的函数吧:

 

private void run() 

    

for(int i=0;i<101;i++) 

    

        

label1.Text = i.ToString(); 

    

这样就可以直接调用

run

函数实现功能了,

而不用在事件函

数内写代码。

(

这样做是有好处的

整个代码如下:

(

3) 

using System; 

using System.Windows.Forms; 

namespace ThreadTest 

    

public partial class Form1 : Form 

    

        

public Form1() 

        

            

InitializeComponent(); 

        

        

private void Form1_Load(object sender, 

EventArgs e) 

        

            

label1.Text = "0"; 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值