C# 特殊用法

本文详细介绍了C#中的线程类使用、后台线程设置、ThreadPool.QueueUserWorkItem方法的用法,以及WaitCallback委托和委托在多线程中的应用。通过实例展示了如何在WindowsForms中创建和管理线程,以及如何使用委托进行方法调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.线程类

  public  Thread Test(object o)
        { 

            return new Thread(new ParameterizedThreadStart(o =>
            {    
                //执行操作
            })) { IsBackground = true };
        }

IsBackground = true 为后台线程,默认为前台线程。

调用方法:

 //方法1
Thread th = Test();
th.Start(参数);
//方法2
Test().Start(参数);

2.ThreadPool.QueueUserWorkItem 方法

ThreadPool.QueueUserWorkItem 方法是用于将工作项提交到线程池队列中的方法。当你需要执行一个方法但不想创建一个新的线程时,可以使用该方法。这个方法会将工作项放到一个线程池队列中,并由线程池中的一个线程来执行该工作项。

方法的第一个参数是 WaitCallback 委托类型,它表示要在线程池上执行的方法。第二个参数是一个对象,表示要传递给该方法的参数。这个参数可以是任何类型的对象,但需要注意的是,如果需要传递多个参数,则应该将它们封装在一个对象中。

当线程池中有可用的线程时,线程池会从队列中取出一个工作项并使用一个线程来执行它。当该线程执行完成后,它将返回到线程池中,等待下一个工作项。使用 ThreadPool.QueueUserWorkItem 方法可以避免创建大量的线程,从而减少内存消耗和上下文切换开销

WaitCallback

WaitCallback 是一个委托类型,在 C# 中用于指定要在线程池中执行的方法。它的定义如下:

namespace System.Threading
{
    //
    // 摘要:
    //     表示要由线程池线程执行的回调方法。
    //
    // 参数:
    //   st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

susan花雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值