您的位置:首页 > 编程语言 > C#

C#多线程,暂停线程(ManualResetEvent)

2010-08-01 11:18 501 查看
只有代码:

代码

class Program
{
public static ManualResetEvent mre = new ManualResetEvent(false);
static void Main(string[] args)
{
Thread threadA = new Thread(new ThreadStart(OtherThreadA));
threadA.Name = "threadA";
threadA.Start();
Thread threadB = new Thread(new ThreadStart(OtherThreadB));
threadB.Start();
Thread currentThread = Thread.CurrentThread;
Console.WriteLine(currentThread.Name);
for (int x = 0; x < 10; x++)
{
Thread.Sleep(900);
Console.WriteLine("Main    :" + x);
if (5 == x)
{
mre.Set();
}
}
while (threadA.IsAlive)
{
Thread.Sleep(1000);
Console.WriteLine("Main: waiting for thread to stop...");
}

}

static void OtherThreadA()
{
Thread currentThread = Thread.CurrentThread;
Console.WriteLine("threadA: waiting for an event");
mre.WaitOne();
Console.WriteLine("threadA: got an event");
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
Console.WriteLine("ThreadA: "+i.ToString());
}
}

static void OtherThreadB()
{
Thread currentThread = Thread.CurrentThread;
Console.WriteLine("threadB: waiting for an event");
mre.WaitOne();
Console.WriteLine("threadB: got an event");
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
Console.WriteLine("ThreadB: " + i.ToString());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: