C# 如何在开启新线程时,传入两个参数
时间: 2024-12-23 11:21:40 浏览: 7
在C#中,如果你想要在创建新线程时传递两个参数,可以使用`ThreadStart`委托或`Task.Run`方法。以下是两种常见的方法:
1. 使用`ThreadStart`委托:
```csharp
Thread myThread = new Thread(new ThreadStart(ThreadFunctionWithTwoParams));
myThread.Start(param1, param2); // 假设param1和param2是你想要传递的两个参数
private static void ThreadFunctionWithTwoParams(object obj1, object obj2)
{
int param1 = (int)obj1;
object param2 = obj2;
// 在这里处理参数
}
```
在这个例子中,你需要将参数转换为合适的类型以便在`ThreadFunctionWithTwoParams`内部使用。
2. 使用`Task.Run`和匿名函数:
```csharp
Task task = Task.Run(() => ThreadFunctionWithTwoParams(param1, param2));
private static void ThreadFunctionWithTwoParams(int param1, object param2)
{
// 在这里处理参数
}
```
这种方法更为简洁,因为`Task.Run`可以直接接受一个lambda表达式作为参数,并且可以在异步上下文中运行你的线程函数。
阅读全文