首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程池参数

线程池参数
EN

Stack Overflow用户
提问于 2011-08-29 07:41:27
回答 4查看 95关注 0票数 0

我一直在到处寻找,我需要一个解决方案,让我添加200-300个工作与某个函数,接受参数。我知道委托和对象是作为单个参数的,但我希望有一些东西可以允许使用不同的参数来排队任务,而不是只使用对象参数。

任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-29 07:44:29

你可以这样做:

代码语言:javascript
复制
void MyMethod(int param)
{
    ....
}

...

ThreadPool.QueueUserWorkItem(_ => MyMethod(1));
ThreadPool.QueueUserWorkItem(_ => MyMethod(2));
ThreadPool.QueueUserWorkItem(_ => MyMethod(3));
...
ThreadPool.QueueUserWorkItem(_ => MyMethod(42));

另一种选择是让MyMethod接受Object类型的参数,并使用QueueUserWorkItem的第二个重载

代码语言:javascript
复制
void MyMethod(object param)
{
    int value = (int)param;
    ....
}

...

ThreadPool.QueueUserWorkItem(MyMethod, 1);
ThreadPool.QueueUserWorkItem(MyMethod, 2);
ThreadPool.QueueUserWorkItem(MyMethod, 3);
...
ThreadPool.QueueUserWorkItem(MyMethod, 42);
票数 2
EN

Stack Overflow用户

发布于 2011-08-29 10:57:38

简单示例:

代码语言:javascript
复制
        for (int i = 0; i < 100; i++)
        {
            System.Threading.ThreadPool.QueueUserWorkItem(k =>
            {
                TestMethod(k);
            }, i);
        }
票数 1
EN

Stack Overflow用户

发布于 2011-08-29 07:43:39

没有什么可以阻止您将对象列表作为对象参数发送,因此在实践中,您可以将任意数量的参数传递给线程函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7224773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档