当前位置 : 主页 > 网络编程 > c#编程 >

C#中多线程Tread的使用(推荐)

来源:互联网 收集:自由互联 发布时间:2023-01-31
首先是概念,什么是线程? 线程是操作系统分配CPU时间的基本单元,在一个进程中可以有多个线程同时执行代码。 谈一谈什么是进程? 简单的说,一个正在运行的应用程序可以视为一

首先是概念,什么是线程?

线程是操作系统分配CPU时间的基本单元,在一个进程中可以有多个线程同时执行代码。

谈一谈什么是进程?

简单的说,一个正在运行的应用程序可以视为一个进程,进程间相互独立,资源不共享,一个进程的运行失败不会影响另一个进程的运行,一个进程可以启动多个线程。

进程入口执行的第一个线程被视为主线程。在.Net应用程序中,Main方法作为入口函数,被调用时会启动一个主线程。

在任务管理器中可以看到进程和线程的运行数量

多线程:在宏观角度来看是多个线程并发执行。从微观角度来看,同一时间只能有一个线程执行。

线程的创建(Tread)

using System.Threading;
Thread thread=new Thread(ThreadTest);//创建无参数线程
Thread thread2=new Thread(ThreadTest2);//创建有参数线程
thread.Start();    //启动线程        
thread2.Start("aaa");    //启动有参线程                                                                
public void ThreadTest()
{
   return;
}

//注意:参数的类型必须是Object  否则无法作为delegate成为Theard的参数
public void ThreadTest(Object obj)
{
   return;
}

同一个线程不可以两次调用start,会抛出异常

根据线程的生命周期来看,只有New状态的Thread才可以调用Start方法,如果已经启动,那么此线程就不是New状态了,而是Running状态

报错提醒:No overload for 'method' matches delegate 'delegate'

调用的delegate的参数不是Object类型

到此这篇关于C#中多线程的使用Tread的文章就介绍到这了,更多相关C#多线程使用内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

上一篇:C#使用Win2D在UWP程序中实现2D绘图
下一篇:没有了
网友评论