【问题标题】:Background Threads are getting shown up后台线程正在显示
【发布时间】:2014-12-27 18:16:16
【问题描述】:

考虑下面的代码。

在主要

for (int i = 0; i <= 9; i++)
{
    ThreadPool.QueueUserWorkItem(Hi,i);
}

static void Hi(object arg)
{
    int n = (int)arg;
    Console.WriteLine("Thread ID:{0}  IsBackground:{1} HI Joshua.. You got:{2} ", Thread.CurrentThread.ManagedThreadId,
        Thread.CurrentThread.IsBackground,n);

}

我得到以下输出

Thread ID:10  IsBackground:True HI Joshua.. You got:2
Thread ID:10  IsBackground:True HI Joshua.. You got:3
Thread ID:10  IsBackground:True HI Joshua.. You got:4
Thread ID:10  IsBackground:True HI Joshua.. You got:6
Thread ID:10  IsBackground:True HI Joshua.. You got:7
Thread ID:10  IsBackground:True HI Joshua.. You got:8
Thread ID:10  IsBackground:True HI Joshua.. You got:9
Thread ID:11  IsBackground:True HI Joshua.. You got:5
Thread ID:13  IsBackground:True HI Joshua.. You got:1
Thread ID:12  IsBackground:True HI Joshua.. You got:0

我的问题是,既然线程池线程具有背景属性 true 那么为什么它们会出现在我的输出中? 如果有人可以指导我参考或书籍,我可以在其中获得线程池工作的示例,那也很好。

【问题讨论】:

    标签: c# .net multithreading visual-studio-2013 threadpool


    【解决方案1】:

    我想你可能对background thread 是什么感到困惑。

    后台线程与前台线程相同,只是后台线程不会阻止进程终止。

    术语“后台线程”确实暗示了一些在后台运行的东西,用户看不到,但这与文档相反。

    您可以阅读更多关于后台线程here 和更多关于一般线程herehere 的信息。

    【讨论】:

      【解决方案2】:

      当控制台应用程序启动时,操作系统会自动 将三个 I/O 流与控制台相关联:标准输入流, 标准输出流和标准错误输出流。您的 应用程序可以从标准输入流中读取用户输入;写 正常数据到标准输出流;并将错误数据写入 标准错误输出流。这些流呈现给您的 应用程序作为 Console.In、Console.Out 和 Console.Error 属性。默认情况下,In 属性的值为 一个 System.IO.TextReader 对象,以及 Out 和 Error 的值 属性是 System.IO.TextWriter 对象。但是,您可以设置 这些属性到不代表控制台的流;为了 例如,您可以将这些属性设置为表示文件的流。 重定向标准输入、标准输出或标准错误 流,调用 Console.SetIn、Console.SetOut 或 Console.SetError 方法,分别。使用这些流的 I/O 操作是 同步,这意味着多个线程可以读取,或者 写入流。

      Console Class

      ThreadPool 的线程是后台线程,但它们可以访问静态 Console 类并调用它的静态方法 WriteLine 并写入输出。

      您可以了解更多关于 C# 中线程的信息here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 2013-09-13
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多