C# 多线程多参数和返回值用法

来源:互联网 发布:c foreach 遍历数组 编辑:程序博客网 时间:2024/06/05 14:20

1. 给线程传递参数

1.1 使用 lambda 表达式

Thread t = new Thread(()=>Print("Hello from t"));t.Start();

使用这种方式可以响新线程传递任意个参数,甚至可以把方法到实现都放到 lambda 表达式中.

new Thread((String name, String value)=>{Console.WriteLine(name);Console.WriteLine(value);}).Start();


2. 获取线程返回值

2.1 使用 Task 获取返回值

Task<String> task = Task.Factory.StartNew<string>(()=>DownloadString("http://ww.linqpad.net"));RunSomeOtherMethod();String taskResult = task.Result;

<String> 用来说明这个 Task 返回一个 String 结果值. 这个值是 DownloadString() 方法都返回值.

2.2 使用异步委托获取返回值

Func<string, int> method = Work;IAsyncResult cookie = method.BeginInvoke("test",null,null);////.....做其他并行工作//int result = method.EndInvoke(cookie);

异步委托可以向线程传递任意多参数,获取任意多返回值. 通常需要先定义 Func 委托, 指向要并行执行的方法, Func 委托执行方法后结果保存在 IAsyncResult 对象中, 通过 EndInvoke 方法取出返回值.

 

 

 

 

 

 

 

 

 


 

0 0
原创粉丝点击