Ejemplo n.º 1
0
        public IAsyncResult BeginPoll(string device, string operation, AsyncCallback callback, object state)
        {
            var pollCompletionSource = new PollCompletionSource(device, operation, callback, state);

            NotificationListener.Create().Register(device, operation, pollCompletionSource);
            return(pollCompletionSource.Task);
        }
        public void Dispose()
        {
            try
            {
                _disposing.EnterWriteLock();

                if (!_disposed)
                {
                    try
                    {
                        _cancellationSource.Cancel();
                        _worker.Wait();
                    }
                    catch
                    {
                    }
                    finally
                    {
                        _cancellationSource.Dispose();

                        _worker             = null;
                        _cancellationSource = null;
                        _devices            = null;

                        _disposed = true;
                        _listener = null;
                    }
                }
            }
            finally
            {
                _disposing.ExitWriteLock();
            }
        }
        public static NotificationListener Create()
        {
            if (_listener == null)
            {
                lock (_sync)
                {
                    if (_listener == null)
                    {
                        _listener = new NotificationListener();
                    }
                }
            }

            return(_listener);
        }
Ejemplo n.º 4
0
 public void UnregisterAll()
 {
     NotificationListener.Create().Dispose();
 }