От: | Sinix | ||
Дата: | 27.02.17 19:49 | ||
Оценка: | 111 (5) |
private static readonly SpinLock _lock = new SpinLock();
private static int _value = 0;
private static void Increment()
{
bool ok = false;
try
{
_lock.Enter(ref ok);
_value++;
// ...
}
finally
{
if (_lock.IsHeld)
_lock.Exit(true);
}
}
static void Main(string[] args)
{
Parallel.For(0, 100000, i => Increment());
Console.WriteLine($"Actual: {_value};");
Console.WriteLine("Done.");
Console.ReadKey();
}