2 つのスレッドを使用して 10 までカウントするプログラムを作成する必要があります。
1 つのスレッドは偶数を出力し、もう 1 つのスレッドは奇数を出力する必要があります。
これらのスレッドは、番号を順番に出力する必要があります (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();
}
}
}