public static Atomicity StartAtomicity(this Atomicity atomicity) { Console.WriteLine("'StartAtomicity' method started\n"); var bob = new Thread(() => { atomicity.GetBanner = new BigBanner("Wash", "The", "Dog"); }); var alice = new Thread(() => { for (int i = 0; i < 5; ++i) { string a, b, c; a = atomicity.GetBanner.slot1; Thread.Sleep(200); b = atomicity.GetBanner.slot2; Thread.Sleep(200); c = atomicity.GetBanner.slot3; Thread.Sleep(200); Console.WriteLine($"Banner in atomic state: {a} {b} {c}"); } }); alice.Start(); Thread.Sleep(300); bob.Start(); bob.Join(); alice.Join(); Console.WriteLine("\n'StartAtomicity' method finished\n\n"); return(atomicity); }
public static void Main(string[] args) { Console.WriteLine("Race Condition\n"); RaceCondition raceCondition = new RaceCondition(); raceCondition.Explanation(); int retryCount = 3; // retry count for execution RaceCondition raceCondition.RetryCount(retryCount, () => { raceCondition.StartRaceCondition() .ShowResult(); }); Console.WriteLine(Environment.NewLine); Console.WriteLine("Atomicity\n"); Atomicity atomicity = new Atomicity(); atomicity.StartAtomicity() .Reset() .StartAtomicityWithLockInstance(); }
public static Atomicity Reset(this Atomicity atomicity) { atomicity = new Atomicity(); return(atomicity); }