Exemple #1
0
        public void OnRouterNotification(AmsRouterState state)
        {
            IList <WeakReference> list = null;
            object obj2 = s_instLock;

            lock (obj2)
            {
                this._routerState = state;
                list = new List <WeakReference>(this._syncPortDict.Values);
            }
            try
            {
                foreach (WeakReference reference in list)
                {
                    if (!reference.IsAlive)
                    {
                        continue;
                    }
                    TcAdsSyncPort target = (TcAdsSyncPort)reference.Target;
                    if (target != null)
                    {
                        if (!target.IsDisposed)
                        {
                            target.OnRouterNotification(this._routerState);
                            continue;
                        }
                        string message = $"SyncPort '{target.Id}' is already disposed!";
                        Module.Trace.TraceWarning(message);
                    }
                }
            }
            catch (Exception exception)
            {
                Module.Trace.TraceError(exception);
            }
        }