I have a WinForms application that has value change event coming from ble device.The event can be hit from more than one device also one device can send a notification to event in every 4 secs. averagely so I am adding device data to a queue to use data after that. This method works but after a while stops working. Is ThreadPool the best option to handle this kind of situation?protected void Characteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs eventArgs)    {        ThreadPool.QueueUserWorkItem((x)=>        {            GattCharacteristic characteristic = sender;            string data = GetByteData(characteristic.Service.Device.BluetoothAddress).Result;            queue.Enqueue(new EventDataModel { IOData = characteristic, IOKey = characteristic.Service.Device.BluetoothAddress.ToString() });        });    }
Is ThreadPool QueueUserWorkItem best option for handling event?
c#;multithreading;winforms;bluetooth