Exemplo n.º 1
0
        protected TCPStreamMonitorStack GetStackForMonitor(NetworkStreamMonitor nsToFind)
        {
            lock (lStacks)
            {
                foreach (TCPStreamMonitorStack sStack in lStacks)
                {
                    foreach (NetworkStreamMonitor nsModifier in sStack.Monitors)
                    {
                        if (nsModifier == nsToFind)
                        {
                            return(sStack);
                        }
                    }
                }

                return(null);
            }
        }
Exemplo n.º 2
0
        void nsMonitor_LoopClosed(object sender, EventArgs e)
        {
            NetworkStreamMonitor nsMonitor = (NetworkStreamMonitor)sender;


            nsMonitor.LoopError  -= new ExceptionEventHandler(nsMonitor_LoopError);
            nsMonitor.LoopClosed -= new EventHandler(nsMonitor_LoopClosed);

            TCPStreamMonitorStack tsmsStack = GetStackForMonitor(nsMonitor);

            if (tsmsStack != null && tsmsStack.IsClosed)
            {
                lock (lStacks)
                {
                    lStacks.Remove(tsmsStack);
                    InvokeExternal(StackDestroyed, new TCPStreamMonitorEventArgs(tsmsStack));
                }
            }
        }