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");
        }
Example #2
0
        public void AddDuplicateThrowsException()
        {
            var set = new AsyncObservableKeyedSet <int, int>(param => param, Context, new[] { 1 });

            EnsureException(() => set.AddAsync(1), Hurls.ArgumentException);
        }