初学C#,想问如何使用三个线程
我想建立3个线程A、B、C
A用来作比较费时的操作,这个一直运行,不用等待
B用来处理一些数据,这个和C互斥
C用来画图,,这个和B互斥
可代码写好后,要么是B一直运行,要么是C一直运行,不让别的线程抢占,可有时又能正确运行。不知什么原因。哪位高手能指点下啊!!!1
调用顺序,先调A,再调B,再调C,三个线程都运行起来。
下边是三个线程的主要函数代码
//类ClassData
public class ClassData
{
//读取耗时数据
//线程A
private void ReadDataFromOut(ref Data TData)
{//获取数据
//过程略....
//此过程不作waitone
}
//线程B
public void TransData()
{//处理数据
try
{
while(true)
{
if(mutex1 == null)
mutex1 = new Mutex(false,"_rs001");//mutex1 = new Mutex(true);
mutex1.WaitOne();
//其它处理
for(int i=0;i<10000;i++)
{
//数据处理
}
mutex1.ReleaseMutex();
}
}
catch(Exception)
{
}
}
}
//其它窗体中用这个作为线程函数,
//线程C
private void runDisplay()
{//显示数据
try
{
Application.DoEvents();
while(true)
{
Application.DoEvents();
Thread.Sleep(50);
// if(ClassData.mutex1 == null)
// ClassData.mutex1 = new Mutex(true,"abcdef");
ClassData.mutex1.WaitOne();
//TransData数据画图由画图
dataDisPlay();
ClassData.mutex1.ReleaseMutex();
}
}
catch(Exception Ex)
{
}
}