|
线程池貌似只能传递一个参数,还必须是object类型的
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");
}
}
|
|
|
没办法,多线程只能传一个参数,
其它的参数,用全局变量来代替吧, |
|
10分 |
把多个参数封装成一个对象
|
10分 |
自定义一个class类想放什么放什么啊
用静态全局变量也可以 |
50分 |
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Count { get; set; }
}
for (int i = 1; i < 20; i++) //将任务加到线程当中
{
ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), new Person { Id = 1, Name = "测试" ,Count=i});
}
public static void TaskProc1(object x) //执行的任务
{
Person person = x as Person;
}
|
10分 |
用lambda或者委托应该可以传多个
|
10分 |
一个对象可以是任何东西,包括集合,元组,或者你封装好的类型的实例,思维别那么局限啊。
|
|
ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), i);
你的i 是一个对象。。就可以了。 |
|
10分 |
new Thread(delegate() { this.Invoke(new Action(delegate() { 乾坤大挪移(快捷菜单, 乾坤大挪移参数); })); }).Start();
http://blog.csdn.net/xianfajushi/article/details/7609849实在是简单的事,提问的这么多! |
|
for(int i=1;i<20;i++) //将任务加到线程当中
{ ThreadPool.QueueUserWorkItem(o=>TaskProc1(i,i)); } public static void TaskProc1(object x,object y) //执行的任务 |
|