Rol*_*oll 8 .net c# multithreading threadpool
默认情况下,.NET中的线程池使用后台线程.
我不能改变它作为前景运行.
如何将其更改为作为前台线程运行?
编辑:
我需要使用这个,因为我正在更改我的应用程序,因为高容量处理(在我手动处理线程之前,默认情况下是Foreground),我不想改变我的应用程序只是为了使它适应背景线程场景..
我想知道为什么线程池默认情况下不是Foreground
Han*_*ant 18
一个"后台线程"的概念是指非常 .NET中的小.Thread.IsBackground属性只是一个简单的标志,可帮助CLR决定在AppDomain卸载时是否应该粗略地中止线程,或者它是否应该等待线程自动退出.
如果希望线程池线程在程序退出时继续运行,则可以更改属性.此代码段显示了可能性:
using System;
using System.Threading;
class Program {
static void Main(string[] args) {
var sync = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem((_) => {
Console.WriteLine("Running");
Thread.CurrentThread.IsBackground = false;
sync.Set();
Thread.Sleep(5000);
Console.WriteLine("Done, should exit now");
Thread.Sleep(250);
});
sync.WaitOne(); // Ensures IsBackground is set
}
}
Run Code Online (Sandbox Code Playgroud)
在这里注意保持球的目光.如果这对你很重要,那么你很可能做错了.
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |