C#线程系列讲座(2):Thread类的应用

一、Thread类的基本用法

通过System.Threading.Thread类可以开始新 的线程,并在线程堆栈中运行静态或实例方法。可以通过Thread类的的构造方法 传递一个无参数,并且不返回值(返回void)的委托(ThreadStart),这个委托的 定义如下:

[ComVisibleAttribute(true)]
public delegate void ThreadStart()

我们可以通过如下的方法来建立并运行一个 线程。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace MyThread{    class Program    {        public static void myStaticThreadMethod()        {            Console.WriteLine("myStaticThreadMethod");        }        static void Main(string[] args)        {            Thread thread1 = new Thread(myStaticThreadMethod);            thread1.Start();  // 只要使用Start方法,线程才会运行        }    }}

除了运行静态的方法,还可以在线程中运行实例 方法,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace MyThread{    class Program    {        public void myThreadMethod()        {            Console.WriteLine("myThreadMethod");        }        static void Main(string[] args)        {            Thread thread2 = new Thread(new Program().myThreadMethod);            thread2.Start();        }    }}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索线程
, thread
, 方法
, 运行
, using
, system
c# thread
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-09-21 14:54:38

C#线程系列讲座(2):Thread类的应用的相关文章

C#线程系列讲座(1):BeginInvoke和EndInvoke方法

开发语言:C#3.0 IDE:Visual Studio 2008 本系列教程主要包括如下内容: 1. BeginInvoke和EndInvoke方法 2. Thread类 3.线程池 4.线程同步基础 5.死锁 6.线程同步的7种方法 7.如何在线程中访问GUI组件 一.线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行.这就需要在同一个进程中开启多个线程.我们使用C#编写一个应用程序

java线程问题-javs中Thread类 Runnable 类 run方法 start方法

问题描述 javs中Thread类 Runnable 类 run方法 start方法 javs中Thread类 Runnable 类 run方法 start方法 这两个类 两个方法之间的联系是如何的 解决方案 Thread 类和 runnable类中都是需要重写run方法, 然后都是通过start()方法来启动线程的. Thread可以将runnable接口作为参数接收,然后在启动,例如 new Thread(new runnable(){ run(){} }) 解决方案二: 在实际开发中一个多

C#线程系列讲座(4):同步与死锁

虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用.让 我们先看看如下的代码: class Increment { private int n = 0; private int max; public Increment(int max) { this.max = max; } public int result { get { return n; } set { n = value; } } public void Inc() { for (int i = 0; i < max;

C#线程系列讲座(5):同步技术之Monitor

在上一讲介绍了使用lock来实现线程之间的同步.实际上,这个lock是C#的一 个障眼法,在C#编译器编译lock语句时,将其编译成了调用Monitor类.先看看下 面的C#源代码: public static void MyLock(){ lock (typeof(Program)) { }} 上面的 代码通过lock语句使MyLock同步,这个方法被编译成IL后,代码如图1所示. 图1 从上图被标注的区域可以看到,一条lock语句被编译成了调 用Monitor的Enter和Exit方法.Mo

C#线程系列讲座(3):线程池和文件下载服务器

如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一 定程序上消耗服务器的资源.为此,一个最好的解决方法就是在服务器启动之前 ,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中 获得线程对象,并处理请求.保存这些线程对象的结构就叫做线程池. 在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下, ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不

Java多线程初学者指南(2):用Thread类创建线程

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: public Thread( ); public Thread(Runnable target); public Thread(String name); public Thread(Runnable t

java线程之用Thread类创建线程的方法_java

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: 复制代码 代码如下: public Thread( ); public Thread(Runnable target); public Thread(String name); public Thread

java多线程编程之使用thread类创建线程_java

在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: 复制代码 代码如下: public Thread( );public Thread(Runnable target);public Thread(String name);public Thread(Ru

Java线程编程中Thread类的基础学习教程_java

一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解. 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以下这几个状态:创建(new).就绪(runnable).运行(running).阻塞(blocked).time waiting.waiting.消亡(dead). 当需要新起一个线程来执行某个子任务时,就创建了一个线程.但是线程创建之后,不会立即进入就绪状态,因为线程的运行需要一些条件(比如内