如何在C#中将参数传递给线程

本文详细介绍了在C#面试中如何通过Thread.Start()方法和ParameterizedThreadStart委托将参数传递给线程,包括代码示例和相关技术概念。

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

在 C# 面试问题中将参数传递给线程——如果我们想将参数传递给线程,你会怎么做?我们需要通过一个线程程序的例子来解释。

答:线程函数的参数/参数可以通过多种方式传递,这是在 C# 中将参数传递给线程的 2 种方式

  • 在 Thread.Start() 方法中使用参数
  • 使用 ParameterizedThreadStart 类委托。

在 C# 中将参数传递给线程 – 2 种方式

将参数传递给线程实际上非常简单。让我们看一下 C# 中程序示例的 2 种方式

1- 使用 Thread.Start() 方法:

在此方法中,首先在c#程序中创建一个线程,并为线程[new Thread(threadFunc)]分配一个用户定义的线程函数,并将参数传递给线程Start(arg)方法。

实际上,在 C# 线程中,可以使用 Start() 重载方法。例如 Start() 和 Start(Object) 等,并且要在 C# 中将参数传递给线程,我们可以使用重载的 Start(Object)。

程序示例 – 在 C# 中使用 Thread.Start(Object) 方法:

using System;
using System.Threading;


namespace parameter_to_thread_function
{
    class Program
    {
        static void Main(string[] args)
        {
            String arg = "Interview Sansar !!!";

            //Create a thread
            Thread tParm = new Thread(threadFunc);
            //Start thread execution
            tParm.Start(arg);//pass argument using Start(Object) method overload
        }

        //Thread function
        static void threadFunc(object arg)
        {
            Console.WriteLine(arg);
        }
    }
}

2- 使用 ParameterizedThreadStart 委托:

将用户定义的线程函数传递给 ParameterizedThreadStart 委托,并将委托对象分配给 Thread 类对象。例如线程(新的 ParameterizedThreadStart(threadFunc))。下一步,调用 Start(arg) 线程函数。

程序示例 – 使用 ParameterizedThreadStart 委托:

using System;
using System.Threading;


namespace parameter_to_thread_function
{
    class Program
    {
        static void Main(string[] args)
        {
            String arg = "Interview Sansar !!!";

            //Create object of ParameterizedThreadStart
            //pass it to Thread class constructor
            //Call Start() method with argument
            Thread tParm = new Thread(new ParameterizedThreadStart(threadFunc));
            tParm.Start(arg);//pass argument using Start(Object) method
        }

        //Thread function
        static void threadFunc(object arg)
        {
            Console.WriteLine(arg);
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值