Start a thread in the background as a fire and forget, but have it check for
cancellation in its internal notification loop.
ThreadPool use to queue up the delegate that starts the thread
threadSource = new CancellationTokenSource();
// Use thead pool to start a background thread
ThreadPool.QueueUserWorkItem(NotificationListener, threadSource.Token);
Details