C#多线程的基础整理(上)——Thread和ThreadPool

本文是对C#多线程基础知识的整理,涵盖了Thread类的基本使用,包括如何创建线程、线程的前台与后台区别,以及Join方法的介绍。接着讨论线程池ThreadPool的优势和使用方式,强调了它如何减少线程创建销毁的性能损耗。最后,文章指出ThreadPool在某些场景的局限性,并预告后续将探讨更好的多线程解决方案。
摘要由CSDN通过智能技术生成

前言

关于C#多线程的使用,想必网上已经有很多前辈进行过详细的总结。笔者在此再次进行整理,主要目的在于对自己学到的东西做一个总结和记录。本人接触C#的时间尚短,想必在很多地方还有缺陷,还请可能存在的读者们予以谅解并加以指教;如果本文真的能帮助到一些读者的话,那笔者实在是不胜荣幸。

基本的线程使用——Thread

说到C#中的线程,最容易使用也最初级的就是Thread类了。Thread类位于System.Threading命名空间中。通过Thread类,我们可以很轻易地创建一个线程:

static void Func1()
{
    Console.Out.WriteLine("Thread running");
}
static void Func2(object obj)
{
    Console.Out.WriteLine(obj as string);
}
static void Main(string[] args)
{
    Thread thread1 = new Thread(Func1);
    Thread thread2 = new Thread(Func2);
    thread1.Start();
    thread2.Start("This is thread2");
    Console.In.Read();
}

以上代码在Main函数中创建了两个线程,并以希望这两个线程运行的函数作为参数进行初始化。Thread支持两种函数——一种是不带参数的函数,另一种则是带一个object参数的函数(请注意函数前的static不是作为参数的必要条件,在此处使用static主要是为了能方便的在Main中调用)。带参数的线程需要在调用Start时传递所需的参数,并且只能传递一个object参数。如果需要传递多个参数,可以考虑声明一个具有所需数据的类,再将这个类传入,但函数的参数依然必须是object。同时,传入的函数返回值应为void

关于Thread的一个细节是Th

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值