我可以创建两个线程并在c#中的任务中运行它们吗?
我必须在c#中创建几个任务来执行图遍历函数,现在我想做的是有两个独立的线程,它们将不同的源作为遍历函数的参数,并在任务本身中启动。我有一个使用task的想法,因为我希望4个task以并行方式工作,但让它们使用两个执行相同函数的线程?可能吗 所以我想要的是,我可以创建两个线程并在c#中的任务中运行它们吗?,c#,multithreading,task,C#,Multithreading,Task,我必须在c#中创建几个任务来执行图遍历函数,现在我想做的是有两个独立的线程,它们将不同的源作为遍历函数的参数,并在任务本身中启动。我有一个使用task的想法,因为我希望4个task以并行方式工作,但让它们使用两个执行相同函数的线程?可能吗 所以我想要的是,task1包含thread1,thread2和task2包含thread3,thread4和task3包含thread5,thread6 所有这些线程都执行相同的函数。有可能实施吗?还有别的办法吗 声明一个可用于向线程传递参数的类: 创建类的多
task1
包含thread1
,thread2
和task2
包含thread3
,thread4
和task3
包含thread5
,thread6
所有这些线程都执行相同的函数。有可能实施吗?还有别的办法吗
ThreadParamsClass[]ThreadParams=新的ThreadParamsClass[6];
ThreadParams[0]=新的ThreadParamsClass(1,2);
ThreadParams[1]=新的ThreadParamsClass(3,4);
ThreadParams[2]=新的ThreadParamsClass(5,6);
ThreadParams[3]=新的ThreadParamsClass(7,8);
ThreadParams[4]=新的ThreadParamsClass(9,10);
ThreadParams[5]=新的ThreadParamsClass(11,12);
对于(int i=0;i<6;i++)
{
Thread Thread1=新线程(新的参数化ThreadStart(Function1));
Thread1.Start(ThreadParams[i]);
}
void函数1(对象参数)
{
ThreadParamsClass ThreadParams=(ThreadParamsClass)参数;
int result=ThreadParams.int1+ThreadParams.int2;
}
为什么不可能呢?试一下,看看是否可能。我给Task1函数创建了两个线程。这两个线程执行图形遍历功能。现在线程没有执行该函数。所以现在我认为我所做的是错的@谢谢你的答复,但这不是我想做的。我希望任务每个创建两个线程,并执行相同的图遍历函数。帮助我!!
class ThreadParamsClass
{
internal int int1, int2;
internal ThreadParamsClass(int int1, int int2)
{
this.int1 = int1;
this.int2 = int2;
}
}
ThreadParamsClass[] ThreadParams = new ThreadParamsClass[6];
ThreadParams[0] = new ThreadParamsClass(1, 2);
ThreadParams[1] = new ThreadParamsClass(3, 4);
ThreadParams[2] = new ThreadParamsClass(5, 6);
ThreadParams[3] = new ThreadParamsClass(7, 8);
ThreadParams[4] = new ThreadParamsClass(9, 10);
ThreadParams[5] = new ThreadParamsClass(11, 12);
for (int i = 0; i < 6; i++)
{
Thread Thread1 = new Thread(new ParameterizedThreadStart(Function1));
Thread1.Start(ThreadParams[i]);
}
void Function1(object Params)
{
ThreadParamsClass ThreadParams = (ThreadParamsClass)Params;
int result = ThreadParams.int1 + ThreadParams.int2;
}