Экземпляр класса Task (Task.Factory.StartNew или TaskCompletionSource)

Это, вероятно, довольно простой вопрос, но я хотел убедиться, что он у меня в голове. Сегодня я копался в библиотеке TPL и обнаружил, что есть два способа создания экземпляра класса Task.

Способ I

 Task<int> t1 = Task.Factory.StartNew(() =>
                {
                    //Some code
                    return 100;

                });

Способ II

  TaskCompletionSource<int> task = new TaskCompletionSource<int>();
  Task t2 = task.Task;
  task.SetResult(100);

Теперь я просто хотел узнать, что

  1. Есть ли разница между эти экземпляры?
  2. Если да, то что?
6
задан santosh singh 15 April 2011 в 10:40
поделиться