c#中有返回值的线程参数方法的写法
时间: 2023-12-02 16:03:24 浏览: 93
创建线程,传递参数,取值返回
在 C# 中,可以使用委托和线程池来创建一个具有返回值的线程参数方法。以下是一个示例代码:
```
using System;
using System.Threading;
public class Program
{
public delegate int MyDelegate(string message);
static void Main(string[] args)
{
MyDelegate del = new MyDelegate(DoWork);
IAsyncResult result = del.BeginInvoke("Hello World", null, null);
// 主线程可以做其它事情
int returnValue = del.EndInvoke(result);
Console.WriteLine("返回值为:" + returnValue);
}
static int DoWork(string message)
{
Console.WriteLine("线程开始执行");
Thread.Sleep(3000);
Console.WriteLine("线程执行完毕");
return message.Length;
}
}
```
在上述代码中,首先定义了一个 `MyDelegate` 委托,它的参数是一个字符串,返回值是一个整数。然后在 `Main` 方法中,创建了一个委托实例 `del`,并使用 `BeginInvoke` 方法来异步启动一个线程执行 `DoWork` 方法。在主线程中可以做其它事情。最后使用 `EndInvoke` 方法来获取线程执行的返回值。
阅读全文