关于线程池的问题?怎么传递多个参数?怎么返回值?

百思软件工作室 2012-05-31 02:28:14
关于线程池的问题?怎么传递多个参数?怎么返回值?

无参数时:
public void AddMsg(string aa)
{}

ThreadPool.QueueUserWorkItem(new WaitCallback(AddMsg),“000”);

两个参数时:
public void AddMsg(string aa,string path)
{}

那该怎么调用呢?代码该怎么写?
最好写出代码
请高手指导,谢谢了!
...全文
291 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
用类或者结构
public void AddMsg(ItemInfo item)
{
}

struct ItemInfo
{
public String aa;
public String bb;
}
[/Quote]

然后这样调用么?
ItemInfo item=new ItemInfo();
ThreadPool.QueueUserWorkItem(new WaitCallback(AddMsg),item);

那用数组可以么?

SocketUp 2012-05-31
  • 打赏
  • 举报
回复
用类或者结构
public void AddMsg(ItemInfo item)
{
}

struct ItemInfo
{
public String aa;
public String bb;
}
Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 第一版的介绍地址:http://blog.csdn.net/fishjam/article/details/8632049 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.可以设置等待Job的最大个数,并在加入Job时,队列满了的话,可以设置等待超时并根据返回值进一步处理 3.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 5.支持回调方式的反馈通知( Progress/Error 等) 6.使用模版方式实现,能方便的进行参数传递 7.在加入任务时可以设置优先级,现已支持动态调整优先级 8.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 9.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 10.采用的是对称模式的线程池(没有管理线程),运行成本低

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧