How to create one producer and two consumers with thread and task?
I tried many things: blocking collection, monitor.wait(enter,exit,pulse), semaphore, but can't seem to get it working.
Here is thread start:
private void button1_Click(object sender, EventArgs e)
{
Thread Producer = new Thread(new ThreadStart(Task_Producer));
Thread Consumer = new Thread(new ThreadStart(Task_Consumer));
Thread Consumer2 = new Thread(new ThreadStart(Task_Consumer2));
Producer.start();
Consumer.start();
Consumer2.start();
}
Here is threads:
private Task task1;
private Task task2;
private Task task3;
void Task_Producer()
{
task1 = Task.Factory.StartNew(Producer_t);
}
void Task_Consumer()
{
task2 = Task.Factory.StartNew(Consumer_t);
}
void Task_Consumer2()
{
task3 = Task.Factory.StartNew(Consumer_t2);
}
Here is task:
int i=0;
int how_much_numbers=1000;
int number=0;
private void Producer_t()
{
for (i = 0; i < how_much_numbers;i++)
{
//number=random number;
}
}
private void Consumer_t()
{
while (i<how_much_numbers)
{
//Check if number is fibonaci
}
}
private void Consumer_t2()
{
while (i<how_much_numbers)
{
//Check if number is primary
}
}