Esempio n. 1
0
        private void StartEvents(Stream stream, string eventName = null, bool exactMatch = false)
        {
            // create an event so reader can signal emitter
            AutoResetEvent emitterWaitHandle = new AutoResetEvent(true);

            // instantiate the stream reader and event emitter
            reader  = new EventStreamReader(stream, queue, emitterWaitHandle);
            emitter = new EventStreamEmitter(queue, this.raiseEvent, emitterWaitHandle, eventName, exactMatch);


            // start the task reader : stream -> queue
            taskReader = Task.Factory.StartNew(() => { Thread.CurrentThread.Name = "StreamReader"; reader.DoWork(); }, TaskCreationOptions.LongRunning);

            // start the task emitter : queue -> events
            taskEmitter = Task.Factory.StartNew(() => { Thread.CurrentThread.Name = "Event Emitter"; emitter.DoWork(); }, TaskCreationOptions.LongRunning);
        }