Write a standard lock() plus double check to create a
critical section around a variable access?
Answer Posted / debmalya kundu
using System;
using System.Text;
using System.Threading;
namespace thread01
{
public class Counter
{
private int _count=0;
private int _even=0;
public int Count { get { return _count; } }
public int EvenCount { get { return _even; } }
private Object theLock = new Object();
public void UpdateCount()
{
lock (theLock)
{
_count = _count + 1;
if (Count % 2 == 0) // An even number
{
_even += 1;
}
}
}
}
class Program
{
static void Main(string[] args)
{
Counter count = new Counter();
ParameterizedThreadStart starter = new
ParameterizedThreadStart(Program.UpdateCount);
Thread[] threads = new Thread[10];
for (int x = 0; x < 10; ++x)
{
threads[x] = new Thread(starter);
threads[x].Start(count);
}
for (int y = 0; y < 10; ++y)
{
threads[y].Join();
}
Console.WriteLine("Total: {0} - Even: {1}",
count.Count,count.EvenCount);
Console.ReadKey();
Console.ReadKey();
}
static void UpdateCount(object param)
{
Counter count = (Counter)param;
for (int z = 1; z <= 100000; ++z)
{
count.UpdateCount();
}
}
}
}
| Is This Answer Correct ? | 3 Yes | 0 No |
Post New Answer View All Answers
How can u debug your .net application?
What is meant by asp.net?
Define web services in asp.net.
Describe session handling in a webfarm, how does it work and what are the limits?
What is mvc in asp.net interview question? : Asp.Net MVC
What is the request flow used for asp.net mvc framework? : asp.net mvc
What is session object? Describe in detail.
What parameters can you pass in the url of the api?
What is a web pool?
Define what is razor? : asp.net mvc
What is postback in asp net?
How use Xml data in ASP.net?
What is the used of "ispostback" property?
Is sql backend or frontend?
What is the mvc framework?