有关新 GetMinThreads 方法和新的 SetMinThreads 方法,在.net Framework 1.1 ThreadPool 类的信息

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 827419
本文已归档。它按“原样”提供,并且不再更新。
简介
在 Microsoft.net Framework 1.1 添加后面的两种新方法:
  • SetMinThreads
  • GetMinThreads
这两种新方法适用于 ThreadPool 类。SetMinThreads 方法用于增加空闲辅助线程的数目或 ThreadPool 类维护的 I/O 完成线程数。GetMinThreads 方法用于获取当前的设置。
更多信息
默认状态下,ThreadPool 类为维护的空闲线程的最小数量是如下所示:
  • 每个计算机处理器的的一个线程
  • 一个线程中的每个工作线程类别
  • 对于每个 I/O 类别的一个线程
如果某一特定应用程序突然需要更多的线程,分配的线程的方式可能会导致瓶颈。若要不必此问题,请使用 SetMinThreads 方法提高空闲辅助线程的数目和 ThreadPool 类维护的 I/O 完成线程数。使用 GetMinThreads 方法获取当前的最小设置。

SetMinThreads 方法

  • 下面的代码示例提供了 SetMinThreads 方法
     public static bool SetMinThreads(int workerThreads, int completionPortThreads){ return SetMinThreadsNative(workerThreads, completionPortThreads);}
    的定义
  • 您可以添加 SetMinThreads 方法增加的空闲辅助线程,并增加维护 ThreadPool 类的 I/O 完成线程数。
  • SetMinThreads 方法设置而不考虑的计算机上的处理器数的空闲线程的总数。
  • 如果指定为负数或有较大的数字比您可以从 ThreadPool 类的 GetMaxThreads 方法获得的活动 ThreadPool 类线程的上限 SetMinThreads 方法将返回 false,但并不更改最小的值。

GetMinThreads 方法

  • 下面的代码示例提供到的 GetMinThreads 方法定义
    public static void GetMinThreads(out int workerThreads, out int completionPortThreads){ GetMinThreadsNative(out workerThreads, out completionPortThreads);}
  • 您可以将 GetMinThreads 方法添加到 ThreadPool 类来获取空闲辅助线程的数目和维护 ThreadPool 类的 I/O 完成线程数.net 1.1 的一部分。
  • GetMinThreads 方法获取无论具有一台计算机的处理器数目的空闲线程的总数。

使用 SetMinThreads 方法和 GetMinThreads 方法的代码示例

在下面的代码示例最小数目的空闲辅助线程设置为 4。保留原始值的最小空闲的 I/O 完成线程数。

Microsoft Visual.net Basic
Dim minWorker, minIOC As Integer        ' Get the current settings.        ThreadPool.GetMinThreads(minWorker, minIOC)        ' Change the minimum number of Worker threads to 4 but keep        ' the old setting for the minimum I/O completion threads.        If ThreadPool.SetMinThreads(4, minIOC) Then            ' The minimum number of threads is set successfully.        Else            ' The minimum number of threads is not changed.        End If
Microsoft Visual C#.net
int minWorker, minIOC;        // Get the current settings.        ThreadPool.GetMinThreads(out minWorker, out minIOC);        // Change the minimum number of Worker threads to 4 but keep        // the old setting for minimum I/O completion threads.        if (ThreadPool.SetMinThreads(4, minIOC))        {            // The minimum number of threads is set successfully.        }        else        {            // The minimum number of threads is not changed.        }
参考
有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
810259FIX: SetMinThreads 和 GetMinThreads API 添加到公共语言运行库 ThreadPool 类
315460如何使用 Visual C#.net 提交到线程池的工作项

属性

文章 ID:827419 - 上次审阅时间:01/17/2015 05:21:54 - 修订版本: 1.3

Microsoft Visual C# .NET 2003 标准版, Microsoft Visual Basic .NET 2003 标准版, Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbinfo kbhowto kbthread kbperformance kbcommandline KB827419 KbMtzh
反馈