private async Task Function() { var count = 1_000_000; var ints = new AsyncObservableKeyedSet <int, int>(i => i); var t1 = Task.Run(async() => { for (int i = 0; i < count; i++) { await ints.AddAsync(i); } Console.WriteLine($"FINISHED ADDING FROM THE FIRST THREAD, {ints.Count} ITEMS IN DICTIONARY"); }); var t2 = Task.Run(async() => { for (int i = 0; i < count; i++) { await ints.AddAsync(i + 1_000_000); //.ConfigureAwait(false); } Console.WriteLine($"FINISHED ADDING FROM THE second THREAD, {ints.Count} ITEMS IN DICTIONARY"); }); await Task.WhenAll(t1, t2); Console.WriteLine(ints.Count + " items"); }
public void AddDuplicateThrowsException() { var set = new AsyncObservableKeyedSet <int, int>(param => param, Context, new[] { 1 }); EnsureException(() => set.AddAsync(1), Hurls.ArgumentException); }