线程执行顺序
有4个类,分别开一个线程,怎样才能按照a-b-c-d的顺序执行呢?窗体代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
A a = new A();
B b = new B();
C c = new C();
D d = new D();
Thread t1=new Thread (new ThreadStart (a.a));
Thread t2 = new Thread(new ThreadStart(b.b));
Thread t3 = new Thread(new ThreadStart(c.c));
Thread t4 = new Thread(new ThreadStart(d.d));
t1.Start();
t2.Start();
t3.Start();
t4.Start();
}
类代码:
class A
{
public void a()
{
//方法
}
}
class B
{
public void b()
{
//方法
}
}
class C
{
public void c()
{
//方法
}
}
class D
{
public void d()
{
//方法
}
}
怎样才能按照a-b-c-d的顺序执行? --------------------编程问答-------------------- 通过ThreadPriority设置它们的优先级
由高到低分别是Highest,AboveNormal,Normal,BelowNormal,Lowest
系统默认为ThreadPriority.Normal
t1.Priority=ThreadPriority.Highest;
t2.Priority=ThreadPriority.AboveNormal;
t3.Priority=ThreadPriority.Normal;
t4.Priority=ThreadPriority.BelowNormal;
--------------------编程问答-------------------- 用Join就可以了 --------------------编程问答-------------------- 既然是顺序执行,开多个线程做啥? --------------------编程问答-------------------- 同问,既然是顺序执行,开多个线程做啥? --------------------编程问答-------------------- 主要目的是想了解线程顺序执行的方法 --------------------编程问答-------------------- a-b-c-d
执行完a,然后执行b,执行完b,然后执行c,执行完c,然后执行d,应该怎样做呢? --------------------编程问答-------------------- 在b执行的代码中,调用aThread.Join()
在c执行的代码中,调用bThread.Join()
在d执行的代码中,调用cThread.Join()
--------------------编程问答-------------------- 或者可以用主线程调用aThread.Join(),再开始bThread
此时主线程阻塞直到aThread执行完毕,进入bThread,依此类推... --------------------编程问答-------------------- 最好能把代码贴出来,谢谢 --------------------编程问答-------------------- join()的方法肯定不行,如果用join(),主线程也阻止了,和不用线程一样 --------------------编程问答-------------------- 用线程池ThreaPool控制啊 --------------------编程问答-------------------- 晕倒~ --------------------编程问答-------------------- 在b执行的代码中,调用aThread.Join()
在c执行的代码中,调用bThread.Join()
在d执行的代码中,调用cThread.Join()
--------------------------------------
很好,很强大!!! --------------------编程问答-------------------- 不是在button1_Click里面调用Join方法是不会阻塞主线程的
补充:.NET技术 , C#