C# Multithreading 

$16.00

Category:

Description

C# Multithreading

Using the code from the project chapter21\MicrosoftMonitorSample\MicrosoftMonitorSample.csproj, create a C# program that more realistically simulates the consumer/producer situation:
Add a synchronized method to the class Cell to check if the cellContents field reached the maximum capacity (interpretation – the warehouse is full)Invokethis method in the WriteToCell methodto stop producing new products and to wait until the cellContents field has been decremented by the consumerthread below this maximum capacity.

Add another synchronized method to the class Cell to check if the cellContentsfield reached the minimum capacity (interpretation – the warehouse is empty).Invokethis method in the ReadFromCell methodto stop consuming new products and to wait until the cellContents field has been incremented by the producer thread above the minimum capacity.

Add an int parameter to the WriteToCell method to represent the number of items manufactured by the producer (interpretation – the producer may produce more than one item) and adjust the loop in the ThreadProdRunmethod to call the WriteToCell method passinga different int parameter valueeach time(e.g. use random selection) in the range from the minimum cell capacity defined in the requirement 2 above to the maximum cell capacity defined in the requirement 1 above. Select the number of the loop’s iterations so that your testing produces meaningful results. Adjust the WriteToCell method so, that every time the method is called, the cellContents field is incremented by the intvalue (representing the number of items manufactured by the producer) passed as an argument to this method. Make sure that the maximum capacity is not exceeded.

Add an int parameter to the ReadFromCell method to represent the number of items consumed by the consumer (interpretation – the consumer may consumemore than one item) and adjust the loop in the ThreadConsRun method to call the ReadFromCell method passinga different int parameter valueeach time(e.g. use random selection) in the range from the minimum cell capacity defined in the requirement 2 above to maximum cell capacity defined in the requirement 1 above. Select the number of the loop’s iterations so that your testing produces meaningful results. Adjust the ReadFromCell method so, that every time the method is called, the cellContents field is decremented by the int value (representing the number of items consumed by the consumer) passed as an argument to this method. Make sure that the cellContents field does not fall below minimum capacity.