Uses Synchronization Contexts in the Windows form





0/5 (0 vote)
Synchronization
There is a way to allow windows form of Synchronization Contexts. Use code like this:
using System; using System.Threading; using System.Runtime.Remoting.Contexts; [Synchronization] public class AutoLock : ContextBoundObject { public void Demo() { Console.Write ("Start..."); Thread.Sleep (1000); // We can't be preempted here Console.WriteLine ("end"); // thanks to automatic locking! } } public class Test { public static void Main() { AutoLock safeInstance = new AutoLock(); new Thread (safeInstance.Demo).Start(); // Call the Demo new Thread (safeInstance.Demo).Start(); // method 3 times safeInstance.Demo(); // concurrently. } }According to this point: Automatic synchronization cannot be used to protect static type members, nor classes not derived from
ContextBoundObject
(for instance, a Windows Form).