向Task添加状态的问题

时间:2011-09-08 18:26:47

标签: c# multithreading .net-4.0 task

我刚开始学习如何在C#中使用Task。但我一开始就遇到了问题。当我运行此代码时,控制台窗口中没有任何内容显示。为什么?'

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 个答案:

答案 0 :(得分:6)

在任务(在后台线程中运行)完成之前,您的程序正在退出。

添加task1.Wait();以等待任务完成运行,然后再完成Main()

答案 1 :(得分:3)

添加一些代码来等待任务:

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);
}