如何在C#中使用任务执行多线程?

时间:2019-03-18 01:50:14

标签: c# multithreading

您有更好的方法来执行多线程吗?

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();

1 个答案:

答案 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 awaitTask.RunTask.WhenAll。我的建议是对所有这些内容进行一些研究