我需要使用两个线程创建一个计数为 10 的程序。
一个线程应该打印偶数,另一个应该打印奇数。
这些线程应按顺序打印数字(1、2、3、4、5...)
我已经完成了这段代码,但它似乎不起作用......有什么想法吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
private static AutoResetEvent autoEvent;
private static int num = 10;
static void DoWork(object data)
{
var counter = (int)data;
if (counter == 1)
{
autoEvent.WaitOne();
}
while (counter <= num)
{
Console.WriteLine(counter);
counter += 2;
autoEvent.Set();
autoEvent.WaitOne();
}
}
static void Main(string[] args)
{
autoEvent = new AutoResetEvent(false);
var evenCounter = new Thread(DoWork);
evenCounter.Start(0);
var notEvenCounter = new Thread(DoWork);
notEvenCounter.Start(1);
Console.ReadLine();
}
}
}