您有更好的方法来执行多线程吗?
GenericLoad newload = new GenericLoad();
Task<IList<List<string>>> task1 = Task<IList<List<string>>>.Factory.StartNew(() => newload.Parse(CSVFile1, ','));
Task<IList<List<string>>> task2 = Task<IList<List<string>>>.Factory.StartNew(() => newload.Parse(CSVFile2, '|'));
task1.wait();
task2.wait();
PrintCSV(task1.Result);
PrintCSV(task2.Result);
task1.Dispose();
task2.Dispose();
答案 0 :(得分:2)
这个问题有很多错误,以至于不可能深入到各个方面。但是,这可能是您正在寻找的更多
public async Task DoSomething()
{
var newload = new GenericLoad();
var task1 = Task.Run(() => newload.Parse(CSVFile1, ','));
var task2 = Task.Run(() => newload.Parse(CSVFile2, '|'));
await Task.WhenAll(task1, task2);
PrintCSV(task1.Result);
PrintCSV(task2.Result);
}
它使用async await
,Task.Run
,Task.WhenAll
。我的建议是对所有这些内容进行一些研究