예제 #1
0
 public void DispatcherSyncContext_HasStandard()
 {
     using (var x = new ScopedSynchronizationContext(new DispatcherSynchronizationContext()))
     {
         SynchronizationContextRegister.Verify(SynchronizationContextProperties.Standard);
     }
 }
예제 #2
0
 public void WindowsFormsSyncContext_HasStandard()
 {
     using (var x = new ScopedSynchronizationContext(new WindowsFormsSynchronizationContext()))
     {
         SynchronizationContextRegister.Verify(SynchronizationContextProperties.Standard);
     }
 }
예제 #3
0
 public void NullSynchContext_HasNonreentrantPost()
 {
     using (var x = new ScopedSynchronizationContext(null))
     {
         SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantPost);
     }
 }
예제 #4
0
        public void RegisteredSyncContext_HasRegisteredProperty()
        {
            SynchronizationContextRegister.Register(typeof(MySynchronizationContext), SynchronizationContextProperties.NonReentrantPost);

            using (var x = new ScopedSynchronizationContext(new MySynchronizationContext()))
            {
                SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantPost);
            }
        }
예제 #5
0
        public void RegisteredSyncContext_ReregisteringProperties_ReplacesOldValue()
        {
            SynchronizationContextRegister.Register(typeof(MyThirdSynchronizationContext), SynchronizationContextProperties.NonReentrantPost);
            SynchronizationContextRegister.Register(typeof(MyThirdSynchronizationContext), SynchronizationContextProperties.NonReentrantSend);

            using (var x = new ScopedSynchronizationContext(new MyThirdSynchronizationContext()))
            {
                SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantSend);
            }
        }
예제 #6
0
        public void RegisteredSyncContext_ReregisteringProperties_DoesNotMergeWithOldValue()
        {
            SynchronizationContextRegister.Register(typeof(MyOtherSynchronizationContext), SynchronizationContextProperties.NonReentrantPost);
            SynchronizationContextRegister.Register(typeof(MyOtherSynchronizationContext), SynchronizationContextProperties.NonReentrantSend);

            using (var x = new ScopedSynchronizationContext(new MyOtherSynchronizationContext()))
            {
                SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantPost);
            }
        }
        public void ActionDispatcherSyncContext_AfterConstruction_RegistersStandardPropertiesExceptSpecificAssociatedThread()
        {
            // Just calling "typeof" isn't sufficient to invoke the static constructor, so we create one
            // Ordinarily, this isn't necessary, since Verify is normally only called on types of initialized objects
            using (ActionDispatcher dispatcher = new ActionDispatcher())
            {
                new ActionDispatcherSynchronizationContext(dispatcher);
            }

            // This will throw an exception if the type doesn't support all Standard properties except SpecificAssociatedThread
            SynchronizationContextRegister.Verify(typeof(ActionDispatcherSynchronizationContext), SynchronizationContextProperties.NonReentrantPost | SynchronizationContextProperties.NonReentrantSend | SynchronizationContextProperties.Sequential | SynchronizationContextProperties.Synchronized);
        }
예제 #8
0
 static MySynchronizationContext()
 {
     // This tells the GenericSynchronizingObject class implementing ISynchronizeInvoke used by our file watchers that an invoke is indeed required
     SynchronizationContextRegister.Register(typeof(MySynchronizationContext), SynchronizationContextProperties.Standard);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SynchronizationContextAsyncDelegateScheduler"/> class, capturing the current <see cref="SynchronizationContext"/>.
 /// </summary>
 public SynchronizationContextAsyncDelegateScheduler()
 {
     this.context = SynchronizationContext.Current;
     SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantPost | SynchronizationContextProperties.Sequential | SynchronizationContextProperties.Synchronized);
 }
예제 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ClientTcpSocket"/> class.
 /// </summary>
 public ClientTcpSocket()
 {
     SynchronizationContextRegister.Verify(SynchronizationContextProperties.NonReentrantPost | SynchronizationContextProperties.NonReentrantSend | SynchronizationContextProperties.Sequential | SynchronizationContextProperties.Synchronized);
 }