예제 #1
0
        public bool Connect()
        {
            bool connected = false;

            IMtApiCallback callback = OperationContext.Current.GetCallbackChannel <IMtApiCallback>();

            if (callback != null)
            {
                try
                {
                    mClientsLocker.AcquireWriterLock(10000);

                    try
                    {
                        if (mClientCallbacks.Contains(callback) == false)
                        {
                            mClientCallbacks.Add(callback);
                        }

                        connected = true;
                    }
                    finally
                    {
                        mClientsLocker.ReleaseWriterLock();
                    }
                }
                catch (ApplicationException)
                {
                }
            }

            return(connected);
        }
예제 #2
0
        public void Disconnect()
        {
            IMtApiCallback callback = OperationContext.Current.GetCallbackChannel <IMtApiCallback>();

            if (callback != null)
            {
                try
                {
                    mClientsLocker.AcquireWriterLock(10000);

                    try
                    {
                        mClientCallbacks.Remove(callback);
                    }
                    finally
                    {
                        mClientsLocker.ReleaseWriterLock();
                    }
                }
                catch (ApplicationException)
                {
                }
            }
        }