private static async Task ThreadMethodAddWatcherAync(Client c, IThrottledMarketDataStream stream)
        {
            await Task.CompletedTask;

            stream.AddWatcher(c);
            System.Diagnostics.Debug.WriteLine("ThreadMethodAddWatcherAync Thread ManagedThreadId : {0}", Thread.CurrentThread.ManagedThreadId);
        }
        private void ThrottledMarketDataStreamMultithreadingAddWatchers(List <Client> list, IThrottledMarketDataStream stream)
        {
            // create a bunch of threads
            List <Thread> threads = new List <Thread>();

            list.ForEach(x => threads.Add(new Thread(() => ThreadMethodAddWatcher(x, stream))));

            // start them
            threads.ForEach(x => x.Start());

            // wait for them to finish
            threads.ForEach(x => x.Join());
        }
        private static void ThreadMethodRemoveWatcher(Client c, IThrottledMarketDataStream stream)
        {
            stream.RemoveWatcher(c);

            System.Diagnostics.Debug.WriteLine("Thread ManagedThreadId : {0}", Thread.CurrentThread.ManagedThreadId);
        }