示例
Program.cs
namespace WaitPulseExample
{
internal class Program
{
static void Main(string[] args)
{
Producer producer = new Producer();
Consumer consumer = new Consumer();
ThreadStart ts1 = new ThreadStart(producer.Produce);
ThreadStart ts2 = new ThreadStart(consumer.Consume);
Thread producerThread = new Thread(ts1) { Name = "Producer Thread" };
Thread consumerTherad = new Thread(ts2) { Name = "Consumer Thread" };
producerThread.Start();
consumerTherad.Start();
producerThread.Join();
consumerTherad.Join();
Console.ReadKey();
}
}
static class Shared
{
public static object LockObject = new object();
public static Queue<int> Buffer = new Queue<int>();
public const int BufferCapacity = 5;
public static void Print()
{
Console.WriteLine("Buffer: ");
foreach (int i in Buffer)
{
Console.Write($"{i}, ");
}
Console.WriteLine();
}
}
class Producer
{
public void Produce()
{
Console.WriteLine($"Producer: Generating Data.");
Console.WriteLine($"Producer: Completed.");
}
}
class Consumer
{
public void Consume()
{
Console.WriteLine($"Consumer: Consuming Data.");
Console.WriteLine($"Consumer: Completed.");
}
}
}