// ReSharper disable once UnusedParameter.Local private TestThread CreateInsertThread(int mainCounter, ManualResetEvent signal) { var tt = TestThread.Start(th => { for (int i = 0; i < 10; i++) { _dict.TryAdd("" + i, "" + i); _added++; } return(true); }, signal); return(tt); }
public static void AddMonitor(string id, BaseMetric metric) { if (!_started) { if (!_beforeStart.ContainsKey(id)) { _beforeStart.Add(id, metric); } } else { metric.Initialize(_periodRun, id.ToLowerInvariant()); _perfData.TryAdd(id.ToLowerInvariant(), metric); } }
public void LockFreeDictionaryTryAddKeyValuePair() { var dict = new AsyncLockFreeDictionary <int, int>(); Thread.Sleep(100); dict.Add(1, 1); dict.Add(2, 2); Thread.Sleep(100); dict.TryAdd(new KeyValuePair <int, int>(1, 100), (preExisting, newKeyValuePair) => new KeyValuePair <int, int>(newKeyValuePair.Key, newKeyValuePair.Value * 2)); Thread.Sleep(100); Assert.AreEqual(2, dict.Count); Assert.AreEqual(200, dict[1]); Assert.AreEqual(2, dict[2]); }