日期:2014-05-17  浏览次数:21134 次

c#线程池,如何传递多个参数?
线程池貌似只能传递一个参数,还必须是object类型的
就是下面这样子的
请问如何传递两个参数呢?

C# code

for(int i=1;i<20;i++)     //将任务加到线程当中
{ 
    ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), i);
}

public static void TaskProc1(object x)   //执行的任务
{
    for(int i=1;i<5;i++)
    {
        Console.Write(x+":"+i+"\n");
    }
}



------解决方案--------------------
把多个参数封装成一个对象
------解决方案--------------------
自定义一个class类想放什么放什么啊
用静态全局变量也可以
------解决方案--------------------
C# code
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Count { get; set; }

}

------解决方案--------------------
用lambda或者委托应该可以传多个
------解决方案--------------------
一个对象可以是任何东西,包括集合,元组,或者你封装好的类型的实例,思维别那么局限啊。
------解决方案--------------------
new Thread(delegate() { this.Invoke(new Action(delegate() { 乾坤大挪移(快捷菜单, 乾坤大挪移参数); })); }).Start();
http://blog.csdn.net/xianfajushi/article/details/7609849实在是简单的事,提问的这么多!