namespace ThPool
{
class Program
{
private static long val = 0;
private static string obj = string.Empty;
static void Main(string[] args)
{
Thread objThread1 = new Thread(new ThreadStart(IncrementValue));
objThread1.Start();
Thread objThread2 = new Thread(new ThreadStart(IncrementValue));
objThread2.Start();
objThread1.Join();
objThread2.Join();
Console.WriteLine("val=" + val + " however it should be " + (10000000 + 10000000));
Console.ReadLine();
}
private static void IncrementValue()
{
for (int i = 0; i < 10000000; i++)
{
Monitor.Enter(obj);
val++;
Monitor.Exit(obj);
}
}
}
}
Jak używać klasy ThreadPool
w celu wymiany monitora wątku &?Sposób korzystania z klasy ThreadPool
Hi Huda Czy możesz sformatować to trochę lepiej? –
Pamiętaj, aby chronić wnętrze swoich metod roboczych za pomocą try-catch, ponieważ wyjątki w wątkach roboczych po prostu cicho zabijają wątek. –