程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 多線程多參數和返回值用法

C# 多線程多參數和返回值用法

編輯:C#入門知識

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 task = Task.Factory.StartNew(()=>DownloadString("http://ww.linqpad.net"));
RunSomeOtherMethod();
String taskResult = task.Result;

用來說明這個 Task 返回一個 String 結果值. 這個值是 DownloadString() 方法都返回值.

2.2 使用異步委托獲取返回值

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

異步委托可以向線程傳遞任意多參數,獲取任意多返回值. 通常需要先定義 Func 委托, 指向要並行執行的方法, Func 委托執行方法後結果保存在 IAsyncResult 對象中, 通過 EndInvoke 方法取出返回值.


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved