use*_*973 6 .net c# multithreading
我是C#的新手.我了解到通常所有线程都是前景,除非你使用IsBackGround = true 明确地将它指定为"后台"线程.
一些疑惑突然出现在我的脑海里.
1)将线程保留为后台线程有什么好处?
2)执行以下代码时:
static void Main(string[] args)
{
Thread worker = new Thread(SayHello);
worker.IsBackground = true;
worker.Start();
Console.WriteLine("Hello From Main");
}
static void SayHello()
{
Console.WriteLine("Hello World");
Console.ReadKey(true);
}
Run Code Online (Sandbox Code Playgroud)
我需要使用worker.Join()来保持主线程等待程序立即终止.除了Join()我可以使用其他技术来保持主线程等待吗?
cod*_*nix 11
1)将线程保留为后台线程有什么好处?
优点是后台线程不会阻止程序终止.在大型应用程序中,如果要退出应用程序,则可能有点难以停用所有线程.
除了Join()我可以使用其他技术来保持主线程等待吗?
如果你想让主程序等待为什么你首先使线程成为后台线程然后??? 除了Join()之外,您还可以使用EventWaitHandle或Monitor来使主方法等待.
这意味着该线程是否会使进程保持活动状态.如果进程中的所有线程都标记为后台,那么.Net将关闭您的进程并强制它退出.
在回答你的问题时,是的你必须加入,因为后台的线程不会保持活着,因此当启动线程离开Main()时它将允许应用程序退出.
| 归档时间: |
|
| 查看次数: |
15189 次 |
| 最近记录: |