【发布时间】:2021-05-09 11:06:12
【问题描述】:
public class SampleData
{
private static readonly Semaphore pool = new Semaphore(0,1);
public string Data => getFromFile();
private static string getFromFile()
{
pool.WaitOne();
var data =
File.ReadAllText("somefilepath");
pool.Release();
return data;
}
}
在程序.cs中
var tasks = new List<Task<string>>();
for(int i=0; i<=5; i++)
{
tasks.Add(Task.Run<string>(()=>
new SampleData().Data));
}
Task.WaitAll(tasks.ToArray());
当我运行它时,它永远不会完成任务。谁能告诉我这里有什么问题?
谢谢。
【问题讨论】:
标签: c# .net multithreading task