c# 如何给新开的线程一个参数
时间: 2024-02-23 10:02:46 浏览: 20
在 C# 中,可以使用 Thread 类的 ParameterizedThreadStart 委托来给新开的线程传递参数。这个委托可以接受一个 object 类型的参数,在新线程中通过强制类型转换来获取传递的参数。
例如,假设我们要启动一个新线程来执行一个方法,这个方法有一个 string 类型的参数,可以这样写:
```
string param = "hello";
Thread newThread = new Thread(new ParameterizedThreadStart(DoWork));
newThread.Start(param);
```
其中,DoWork 是我们要执行的方法,它的签名应该是这样的:
```
void DoWork(object param)
{
string strParam = (string)param;
// do something with strParam
}
```
在启动新线程时,将参数 param 传递给 Start 方法,它会自动调用 DoWork 方法,并将参数传递给它。在 DoWork 方法中,我们需要将参数转换为正确的类型,然后就可以使用它了。
相关问题
C#开启一个新线程带参数
可以使用Thread类的ParameterizedThreadStart委托来带参数启动新线程。以下是示例代码:
```
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(new ParameterizedThreadStart(DoWork));
t.Start("Hello, World!");
}
static void DoWork(object data)
{
string message = (string)data;
Console.WriteLine(message);
}
}
```
在这个例子中,我们创建了一个新线程并传递一个字符串参数"Hello, World!",然后在新线程中执行DoWork方法。在DoWork方法中,我们将参数解析为字符串并输出到控制台。
c#创建一个线程
在 C# 中创建一个线程可以使用 Thread 类,具体步骤如下:
1. 创建一个 ThreadStart 委托,它表示要在线程中执行的方法。
2. 创建一个 Thread 对象,将 ThreadStart 委托作为参数传递给该对象的构造函数。
3. 调用 Thread 对象的 Start 方法,启动新线程。
以下是一个示例代码:
```
using System;
using System.Threading;
public class Program
{
public static void Main()
{
Thread newThread = new Thread(new ThreadStart(DoWork));
newThread.Start();
}
private static void DoWork()
{
// 在此执行线程需要完成的工作
Console.WriteLine("Thread started");
}
}
```
在上面的代码中,我们创建了一个名为 `newThread` 的新线程,该线程将执行 `DoWork` 方法。然后,我们调用 `newThread.Start()` 方法,启动新线程。当新线程启动时,它将执行 `DoWork` 方法中的代码。在本例中,`DoWork` 方法只是打印一条消息。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)