class Program
{
static void Main(string[] args)
{
List<Product> listProduct = new List<Product>() {
new Product { ID = 1, Name = "A" },
new Product { ID = 2, Name = "B" },
new Product { ID = 3, Name = "C" } };
Action[] actions = new Action[listProduct.Count];
for (int i = 0; i < listProduct.Count; i++)
{
var b = i;
actions[b] = delegate { TaskTest(listProduct[i]); };
}
//這樣寫沒有執行執行緒執的方法
foreach (var item in actions)
{
ThreadPool.QueueUserWorkItem(s=>item(),null);
}
}
static void TaskTest(Product index)
{
Console.WriteLine($"當前{index.ID}");
Console.ReadKey();
}
}
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
}
這樣寫沒有輸出的
uj5u.com熱心網友回復:
Action換成WaitCallback呢uj5u.com熱心網友回復:
因為我需求需要用到Parallel.Invoke,并行運行不支持WaitCallback只支持Actionuj5u.com熱心網友回復:
你既然使用了 Parallel.Invoke,并行編程。那么為什么還要考慮執行緒池的問題呢?
直接塞多個action就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/277938.html
標籤:C#
上一篇:C# XML字串轉物體類
