#c# #multithreading
#c# #многопоточность
Вопрос:
У вас есть лучший способ сделать многопоточность?
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. Не совсем понятно, что вы пытаетесь здесь сделать. Можете ли вы отредактировать свой вопрос, чтобы было ясно, каким вы хотите видеть результат?
Ответ №1:
В этом вопросе много неправильного, настолько много, что было бы невозможно углубиться в каждый аспект. Однако, это, вероятно, больше то, что вы ищете
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
. Мой совет — провести некоторое исследование во всех этих