У меня есть какой-то сторонний класс ', который (по некоторым причинам) тяжело инициализировать.Тогда я подумал, что если бы я мог инициализировать их параллельно, я мог бы сократить время загрузки.
Разве это не должно быть хорошо?Или есть что-то, что я не принимаю во внимание?Я не получаю никаких ошибок, однако вижу, что «остальная часть кода» выдает другой и неправильный результат, когда я просто инициализирую их нормально.Может ли это быть чем-то внутри стороннего класса, которому не нравится параллельная инициализация?
У меня есть base class
и несколько child class's
.Внутри моего child Class's
я инициализирую сторонний класс '
Мой код выглядит примерно так:
public ChildClass1 test1;
public ChildClass2 test2;
private void button2_Click(object sender, EventArgs e)
{
Stopwatch MainWatch = new Stopwatch();
MainWatch.Start();
Task task1 = new Task(() => test1 = new ChildClass1());
task1.Start();
Task task2 = new Task(() => test2 = new ChildClass2());
task2.Start();
Task.WaitAll(task1, task2);
MainWatch.Stop();
//Rest of the code...
(Правка) После прочтения ссылкииз комментария я сейчас делаю это так, как показано ниже.Это работает, и я набираю около 25% времени загрузки.Вопрос сейчас в том, работает ли он параллельно?
public ChildClass1 test1;
public ChildClass2 test2;
private async void button2_Click(object sender, EventArgs e)
{
Stopwatch MainWatch = new Stopwatch();
MainWatch.Start();
await Task.Run(() => test1 = new ChildClass1());
await Task.Run(() => test2 = new ChildClass2());
await Task.WhenAll();
MainWatch.Stop();
//Rest of the code...