C#Task类中的Console.WriteLine()和Debug.WriteLine()打印失效

C#的Console.WriteLine()和Debug.WriteLine()无效

在学习多线程时将下面链接中的示例沾到本地运行,发现打印不出东西

img

这是本地的代码:

using System;
using System.Diagnostics;

/*
 * ContinueWith可以传入TaskContinuationOptions枚举类参数来影响线程的运行方式。
 */
namespace TaskContinuationOptionsApplication
{
    public class TaskContinuationOptionsTest
    {
        public static void DoSomething(string name, int time = 2000)
        {
            Debug.WriteLine($"DoSomething--Start--{name}--{Thread.CurrentThread.ManagedThreadId.ToString("00")}--{DateTime.Now.ToString("HH:mm:ss.fff")}");
            Thread.Sleep(time);
            Debug.WriteLine($"DoSomething--End--{name}--{Thread.CurrentThread.ManagedThreadId.ToString("00")}--{DateTime.Now.ToString("HH:mm:ss.fff")}");
        }

        public static void Main(string[] args )
        {
            /*
             * none:默认情况
             */
            #region
            Task task1 = new Task(() =>
            {
                DoSomething("task1");
            });
            Task task2 = task1.ContinueWith(t =>
            {
                DoSomething("task2");
            });
            Task task3 = task2.ContinueWith(t =>
            {
                DoSomething("task3");
            });
            task1.Start();
            Debug.WriteLine(task3 + " " + task2.ToString() + " " + "1111");
            #endregion
        }
    }
}

这是本地运行结果:
请问这是为什么,在Task外面是可以打印出来的,是Task的问题吗?
另外请问@李宥小哥 ,方便的话帮我看一下,谢谢

img

你主函数退出的太快了,子线程还没等启动主线程都执行完了
主线程结束,整个进程也就结束了
task是个异步操作,它不是threading那种线程,那种是独立运行的,主线程结束了子线程还可以运行