Рекомендуется ли использовать prevTask.Wait ()с ContinueWith (из библиотеки задач )?

Итак, недавно мне сказали, что то, как я использую свой.ContinueWith для задач, не является правильным способом их использования. Мне еще предстоит найти доказательства этого в Интернете, поэтому я спрошу вас, ребята, и посмотрю, каков будет ответ. Вот пример того, как я использую.ContinueWith:

public Task DoSomething()
{
    return Task.Factory.StartNew(() =>
    {
        Console.WriteLine("Step 1");
    })
   .ContinueWith((prevTask) =>
    {
        Console.WriteLine("Step 2");
    })
   .ContinueWith((prevTask) =>
    {
        Console.WriteLine("Step 3");
    });
}

Теперь я знаю, что это простой пример, и он будет работать очень быстро, но просто предположим, что каждая задача выполняет более длительную операцию. Итак, мне сказали, что в.ContinueWith вам нужно сказать prevTask.Wait (); в противном случае вы могли бы выполнить работу до завершения предыдущей задачи. Это вообще возможно? Я предположил, что моя вторая и третья задача будут выполняться только после завершения их предыдущей задачи.

Что мне сказали, как писать код:

public Task DoSomething()
{
    return Task.Factory.StartNew(() =>
    {
        Console.WriteLine("Step 1");
    })
   .ContinueWith((prevTask) =>
    {
        prevTask.Wait();
        Console.WriteLine("Step 2");
    })
   .ContinueWith((prevTask) =>
    {
        prevTask.Wait();
        Console.WriteLine("Step 3");
    });
}
88
задан Amit Dash 18 February 2018 в 15:06
поделиться