public void Test1() { //arrange _LightService.AddOrUpdateLight(1, false, Light.Gray); _LightService.AddOrUpdateLight(2, false, Light.Gray); var tasks = new List <Task>(); for (var i = 0; i < 10000; i++) { tasks.Add( Task.Factory.StartNew((index) => { int selectIndex = ((int)index & 1) == 1 ? 1 : 2; _LightService.AddOrUpdateLight(selectIndex, true, Light.Yellow); }, i)); } var expected = Light.Yellow; Task.WaitAll(tasks.ToArray()); //act var act1 = _LightService.GetLightMachineById(1).LightType; var act2 = _LightService.GetLightMachineById(2).LightType; //assert Assert.AreEqual(act2, expected); Assert.AreEqual(act1, expected); }