Проблема с добавлением состояния в задачу - PullRequest
3 голосов
/ 08 сентября 2011

Я только начал изучать, как использовать задачу в C #.Но я столкнулся с проблемой в самом начале.Когда я запускаю этот код, в окне консоли ничего не отображается. Почему? '

static void Main(string[] args)
{
    Task task1 = new Task((obj) => PrintMsg(obj), "Hello Task");
    task1.Start();
}

static void PrintMsg(object msg)
{
    Console.WriteLine(msg);
}

Ответы [ 2 ]

6 голосов
/ 08 сентября 2011

Ваша программа завершает работу до завершения задачи (которая выполняется в фоновом потоке).

Добавьте task1.Wait();, чтобы дождаться завершения задачи перед завершением Main().

3 голосов
/ 08 сентября 2011

Добавьте код для ожидания задачи:

static void Main(string[] args)
{
    Task task1 = new Task((obj) => PrintMsg(obj), "Hello Task");
    task1.Start();
    // or Console.ReadLine();
    task1.Wait();
}

static void PrintMsg(object msg)
{
    Console.WriteLine(msg);
}
...