VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > C#编程 >
  • c#教程之线程的创建

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/

7.1    线程的创建

例子:多线程程序设计,该程序包括一个子线程,在标签控件中显示子线程运行的时间。增加4个按钮,分别单击按钮,可以建立、挂起、恢复和停止线程。
(1)    新建项目。在窗体中放置4个按钮和一个标签控件,属性Name分别为button1、button2、button3、button4和label1,按钮属性Text分别为新线程、挂起、恢复和撤销。button1属性Enabled=true,其余按钮的属性Enabled=false。
(2)    在Form1.cs头部增加语句:using System.Threading。
(3)    为Form1类定义一个线程类变量:private Thread thread;
(4)    为新线程按钮(button1)增加单击事件函数如下:
thread= new Thread(new ThreadStart(fun);//生成线程类对象
label1.Text=”0”;
thread.Start();
button1.Enabled=false;
button2.Enabled=true;
button3.Enabled=false;
button4.Enabled=true;
(5)    为挂起按钮(button2)增加单击事件函数如下:
thread. Suspend();
button1.Enabled=false;
button2.Enabled=false;
button3.Enabled=true;
button4.Enabled=false;
(6)    为恢复按钮(button3)增加单击事件函数如下:
thread. Resume();
button1.Enabled=false;
button2.Enabled=true;
button3.Enabled=false;
button4.Enabled=true;
(7)    为撤销按钮(button4)增加单击事件函数如下:
if(thread.IsAlive())
{
thread.Abort();//撤销线程对象
button1.Enabled=true;
button2.Enabled=false;
button3.Enabled=false;
button4.Enabled=false;
}
(8)    C#线程模型由于允许将任何一个原型为void类型的公有类成员方法(静态或非静态)作为线程方法,因此它实际上允许在任何一个类(不要求这个类是某个类的子类)中实现线程方法,而且同一个类中可以实现多个线程方法。为Form1类定义一个方法如下:
public void fun()//在线程中执行的方法,必须为公有void类型方法,不能有参数。
{
while(true)//死循环,线程将一直运行
{
int x=Convert.ToInt(label1.Text);
x++;
label1.Text=Convert.ToString(x);
thread.Sleep(1000);//休眠1秒钟,休眠一次,线程运行了1秒钟
}
}
(9)  编译,运行,按新线程(Button1)按钮,新线程开始,计数器从0开始计数。按挂起(Button2)按钮,线程暂停,计数器也暂停。按恢复(Button3)按钮,线程重新启动,计数器也重新计数。按撤销(Button4)按钮,线程对象被撤销,线程对象不存在,计数器停止计数。
相关教程