簡體   English   中英

多線程控制台應用程序什么時候退出?

[英]When does a multithreaded console application exit?

class Program
{
    public static void Main(String[] args)
    {
        var c = new C();
        var thread = new Thread(new ThreadStart(c.F));
        thread.Start();
        Console.WriteLine("Exiting main, but the program won't quit yet...");
    }
}
class C
{
    public void F()
    {
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine("Waiting {0}", i);
            Thread.Sleep(1000);
        }
        Console.WriteLine("Now the program will quit...");
    }
}

在控制台應用程序的引擎下發生了什么導致它在退出之前等待其他線程完成(指向文檔很好)?

注意:我知道這是一個基本問題 - 我總是管理等待線程完成之前從未考慮過有一些基礎設施為我做了...

當所有前台線程終止時,進程結束

來自前台線程與后台線程的Thread.IsBackground備注:

線程是后台線程或前台線程。 后台線程與前台線程相同,除了后台線程不會阻止進程終止。 一旦屬於進程的所有前台線程終止,公共語言運行庫就結束該進程。 任何剩余的后台線程都會停止並且不會完成。

任何具有正在運行的線程的進程都不會退出,直到退出所有線程。 所以當主線程退出時,它會運行另一個線程,並且當腳踏退出過程終止時。 在任何時候退出程序Environment.Exit(0); 應該管用。 這句話將終止所有的步驟和過程將被終止,這是非常的方式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM