コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SeeingSharpMessenger"/> class.
        /// </summary>
        public SeeingSharpMessenger()
        {
            m_messengerName = string.Empty;
            m_syncContext   = null;
            m_checkBehavior = SeeingSharpMessageThreadingBehavior.Ignore;

            m_messageSubscriptions     = new Dictionary <Type, List <MessageSubscription> >();
            m_messageSubscriptionsLock = new object();
        }
コード例 #2
0
        /// <summary>
        /// Sets all required synchronization properties.
        /// </summary>
        /// <param name="checkBehavior">Defines the checking behavior for Publish calls.</param>
        /// <param name="messengerName">The name by which this messenger should be registered.</param>
        /// <param name="syncContext">The synchronization context to be used.</param>
        public void ApplyForGlobalSynchronization(SeeingSharpMessageThreadingBehavior checkBehavior, string messengerName, SynchronizationContext syncContext)
        {
            messengerName.EnsureNotNullOrEmpty(nameof(messengerName));
            syncContext.EnsureNotNull(nameof(syncContext));

            m_messengerName = messengerName;
            m_checkBehavior = checkBehavior;
            m_syncContext   = syncContext;

            if (!string.IsNullOrEmpty(messengerName))
            {
                s_messengersByName.TryAdd(messengerName, this);
            }
        }
コード例 #3
0
        /// <summary>
        /// Clears all synchronization options.
        /// </summary>
        public void DiscardGlobalSynchronization()
        {
            if (string.IsNullOrEmpty(m_messengerName))
            {
                return;
            }

            SeeingSharpMessenger dummyResult = null;

            s_messengersByName.TryRemove(m_messengerName, out dummyResult);

            m_checkBehavior = SeeingSharpMessageThreadingBehavior.Ignore;
            m_messengerName = string.Empty;
            m_syncContext   = null;
        }