Why doesn't C# have a synchronized keyword?
This post is more than 18 years old.
Posted at 17:40 on 27 February 2006
In Java you can mark a class method as a critical section, i.e. it will only be executed by one thread at a time, by using the synchronized
keyword:
synchronized void myMethod() { doSomething(); }
In C# you have to type in this ghastly (and rather obscure) mouthful:
using System.Runtime.CompilerServices; [MethodImpl(MethodImplOptions.Synchronized)] void MyMethod() { DoSomething(); }
Why can't we have a synchronized
keyword in C# for this like in Java?