当前位置: 首页>>代码示例>>C#>>正文


C# ApartmentState类代码示例

本文整理汇总了C#中ApartmentState的典型用法代码示例。如果您正苦于以下问题:C# ApartmentState类的具体用法?C# ApartmentState怎么用?C# ApartmentState使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ApartmentState类属于命名空间,在下文中一共展示了ApartmentState类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DispatcherContext

 /// <summary>
 /// Initialies a new <see cref="DispatcherContext"/> synchronized with a new <see cref="Thread"/> instance
 /// </summary>
 /// <param name="threadApartmentState">The <see cref="ApartmentState"/> of the <see cref="Dispatcher"/>'s <see cref="Thread"/></param>
 ///<param name="owner">The <see cref="Dispatcher"/> that owns the <see cref="DispatcherContext"/></param>
 public DispatcherContext(Dispatcher owner, ApartmentState threadApartmentState)
 {
     Thread dispatcherThread;
     this.Owner = owner;
     dispatcherThread = new Thread(new ParameterizedThreadStart(this.ExecuteOperations));
     dispatcherThread.SetApartmentState(threadApartmentState);
 }
开发者ID:yonglehou,项目名称:Photon,代码行数:12,代码来源:DispatcherContext.cs

示例2: SingleThreadTaskScheduler

		public SingleThreadTaskScheduler(string name = null, ThreadPriority priority = ThreadPriority.Normal, ApartmentState apartmentState = ApartmentState.STA)
		{
#if DEBUG
			_allocStackTrace = new StackTrace();
#endif

			_thread = new Thread(
				() =>
				{
					try
					{
						foreach (var task in _queue.GetConsumingEnumerable())
							TryExecuteTask(task);
					}
					finally
					{
						_queue.Dispose();
					}
				});

			_thread.IsBackground = true;
			_thread.Name = name;
			_thread.Priority = priority;
			_thread.SetApartmentState(apartmentState);

			_thread.Start();
		}
开发者ID:slorion,项目名称:nlight,代码行数:27,代码来源:SingleThreadTaskScheduler.cs

示例3: Run

        private void Run(ThreadStart userDelegate, ApartmentState apartmentState)
        {
            lastException = null;

            var thread = new Thread(
                delegate()
                    {
                        try
                        {
                            userDelegate.Invoke();
                        }
                        catch (Exception e)
                        {
                            lastException = e;
                        }
                    });
            thread.SetApartmentState(apartmentState);

            thread.Start();
            thread.Join();

            if (ExceptionWasThrown())
            {
                ThrowExceptionPreservingStack(lastException);
            }
        }
开发者ID:Jeff-Lewis,项目名称:nhaml,代码行数:26,代码来源:CrossThreadTestRunner.cs

示例4: AssemblyItem

		public AssemblyItem( string path, ApartmentState apartment )
		{
			if ( !System.IO.Path.IsPathRooted( path ) )
				throw new ArgumentException( "Assembly path must be absolute", "path" );
			this.path = path;
			this.apartment = apartment;
		}
开发者ID:calumjiao,项目名称:Mono-Class-Libraries,代码行数:7,代码来源:AssemblyItem.cs

示例5: StartNewDispatcherThread

        private void StartNewDispatcherThread(ApartmentState apartmentState)
        {
            var reset = new ManualResetEvent(false);

            var t = new Thread((ThreadStart)delegate
            {
                Thread.CurrentThread.Name = string.Format("WorkDispatcherThread");

                Dispatcher.Run(reset);
            })
            {
                IsBackground = true
            };

            t.SetApartmentState(apartmentState);

            t.Priority = ThreadPriority.Normal;

            /* Starts the thread and creates the object */
            t.Start();
           
            /* We wait until our dispatcher is initialized and
             * the new Dispatcher is running */
            reset.WaitOne();
        }
开发者ID:jiailiuyan,项目名称:WPF-MediaKit,代码行数:25,代码来源:WorkDispatcherObject.cs

示例6: GetParentThreadInfo

        public void GetParentThreadInfo()
        {
            ParentThread = Thread.CurrentThread;
#if !NETCF
            ParentThreadApartment = GetApartmentState(ParentThread);
#endif
        }
开发者ID:JohanLarsson,项目名称:nunit,代码行数:7,代码来源:ThreadingTests.cs

示例7: WorkerThread

 protected WorkerThread(string name, ThreadPriority priority, ApartmentState apartmentState)
 {
     _thread = new Thread(new ThreadStart(this.InternalRun));
     _thread.Name = name;
     _thread.Priority = priority;
     _thread.SetApartmentState(apartmentState);
 }
开发者ID:dot-i,项目名称:ARGUS-TV-Clients,代码行数:7,代码来源:WorkerThread.cs

示例8: ServerSteppablePipelineDriver

 internal ServerSteppablePipelineDriver(PowerShell powershell, bool noInput, Guid clientPowerShellId, Guid clientRunspacePoolId, ServerRunspacePoolDriver runspacePoolDriver, ApartmentState apartmentState, HostInfo hostInfo, System.Management.Automation.RemoteStreamOptions streamOptions, bool addToHistory, Runspace rsToUse, ServerSteppablePipelineSubscriber eventSubscriber, PSDataCollection<object> powershellInput)
 {
     this.localPowerShell = powershell;
     this.clientPowerShellId = clientPowerShellId;
     this.clientRunspacePoolId = clientRunspacePoolId;
     this.remoteStreamOptions = streamOptions;
     this.apartmentState = apartmentState;
     this.noInput = noInput;
     this.addToHistory = addToHistory;
     this.eventSubscriber = eventSubscriber;
     this.powershellInput = powershellInput;
     this.input = new PSDataCollection<object>();
     this.inputEnumerator = this.input.GetEnumerator();
     this.input.ReleaseOnEnumeration = true;
     this.dsHandler = runspacePoolDriver.DataStructureHandler.CreatePowerShellDataStructureHandler(clientPowerShellId, clientRunspacePoolId, this.remoteStreamOptions, null);
     this.remoteHost = this.dsHandler.GetHostAssociatedWithPowerShell(hostInfo, runspacePoolDriver.ServerRemoteHost);
     this.dsHandler.InputEndReceived += new EventHandler(this.HandleInputEndReceived);
     this.dsHandler.InputReceived += new EventHandler<RemoteDataEventArgs<object>>(this.HandleInputReceived);
     this.dsHandler.StopPowerShellReceived += new EventHandler(this.HandleStopReceived);
     this.dsHandler.HostResponseReceived += new EventHandler<RemoteDataEventArgs<RemoteHostResponse>>(this.HandleHostResponseReceived);
     this.dsHandler.OnSessionConnected += new EventHandler(this.HandleSessionConnected);
     if (rsToUse == null)
     {
         throw PSTraceSource.NewInvalidOperationException("RemotingErrorIdStrings", "NestedPipelineMissingRunspace", new object[0]);
     }
     this.localPowerShell.Runspace = rsToUse;
     eventSubscriber.SubscribeEvents(this);
     this.stateOfSteppablePipeline = PSInvocationState.NotStarted;
 }
开发者ID:nickchal,项目名称:pash,代码行数:29,代码来源:ServerSteppablePipelineDriver.cs

示例9: RunInApartment

			/// <summary>
			/// Runs in the specified apartment
			/// </summary>
			private void RunInApartment(ThreadStart userDelegate, ApartmentState apartmentState)
			{
				Exception thrownException = null;

				Thread thread = new Thread(
				  delegate()
				  {
					  try
					  {
						  userDelegate.Invoke();
					  }
					  catch (Exception e)
					  {
						  thrownException = e;
					  }
				  });
				thread.SetApartmentState(apartmentState);

				thread.Start();
				thread.Join();

				if (thrownException != null)
				{
					ThrowExceptionPreservingStack(thrownException);
				}
			}
开发者ID:flashcurd,项目名称:Shared.Utilities,代码行数:29,代码来源:ThreadRunner.cs

示例10: Run

        private void Run(ThreadStart userDelegate, ApartmentState apartmentState)
        {
            lastException = null;

            Thread thread = new Thread(
                delegate()
                    {
#if !DEBUG
                        try
                        {
#endif
                        userDelegate.Invoke();
#if !DEBUG
                        }
                        catch (Exception e)
                        {
                            lastException = e;
                        }
#endif
                    });
            thread.SetApartmentState(apartmentState);

            thread.Start();
            thread.Join();

            if (ExceptionWasThrown())
                ThrowExceptionPreservingStack(lastException);
        }
开发者ID:sivarajankumar,项目名称:dentalsmile,代码行数:28,代码来源:CrossThreadTestRunner.cs

示例11: Execute

		/// <summary>Invokes the specified delegate with the specified parameters in the specified kind of apartment state.</summary>
		/// <param name="d">The delegate to be invoked.</param>
		/// <param name="parameters">The parameters to pass to the delegate being invoked.</param>
		/// <param name="state">The apartment state to run under.</param>
		/// <returns>The result of calling the delegate.</returns>
		public static object Execute(
			Delegate d, object[] parameters, ApartmentState state)
		{
			if (d == null) throw new ArgumentNullException("d");
			if (state != ApartmentState.MTA && state != ApartmentState.STA)
				throw new ArgumentOutOfRangeException("state");

			if (Thread.CurrentThread.ApartmentState == state)
			{
				return d.DynamicInvoke(parameters);
			}
			else
			{
				ApartmentStateSwitcher switcher = new ApartmentStateSwitcher();
				switcher._delegate = d;
				switcher._parameters = parameters;

				Thread t = new Thread(new ThreadStart(switcher.Run));
				t.ApartmentState = state;
				t.IsBackground = true;
				t.Start();
				t.Join();

				if (switcher._exc != null) throw switcher._exc;
				return switcher._rv;
			}
		}
开发者ID:babgvant,项目名称:EVRPlay,代码行数:32,代码来源:ApartmentStateSwitcher.cs

示例12: RunInApartmentFromApartment

		/// <summary>
		/// A common helper method that tests running a test in an apartment from an apartment.
		/// </summary>
		private bool RunInApartmentFromApartment(ApartmentState fromApartMent, ApartmentState inApartment)
		{
			bool wasRunInCorrectApartment = false;

			Thread runnerThread = new Thread((ThreadStart)delegate
			{
				if (inApartment == ApartmentState.MTA)
				{
					ThreadRunner.RunInMTA(delegate
					{
						wasRunInCorrectApartment = Thread.CurrentThread.GetApartmentState() == inApartment;
					});
				}
				else if (inApartment == ApartmentState.STA)
				{
					ThreadRunner.RunInSTA(delegate
					{
						wasRunInCorrectApartment = Thread.CurrentThread.GetApartmentState() == inApartment;
					});
				}
			}
			);
			runnerThread.SetApartmentState(fromApartMent);
			runnerThread.Start();
			runnerThread.Join();

			return wasRunInCorrectApartment;
		}
开发者ID:flashcurd,项目名称:Shared.Utilities,代码行数:31,代码来源:ThreadRunnerTests.cs

示例13: NUnitConfiguration

        /// <summary>
        /// Class constructor initializes fields from config file
        /// </summary>
        static NUnitConfiguration()
        {
            try
            {
                NameValueCollection settings = GetConfigSection("NUnit/TestCaseBuilder");
                if (settings != null)
                {
                    string oldStyle = settings["OldStyleTestCases"];
                    if (oldStyle != null)
                            allowOldStyleTests = Boolean.Parse(oldStyle);
                }

                settings = GetConfigSection("NUnit/TestRunner");
                if (settings != null)
                {
                    string apartment = settings["ApartmentState"];
                    if (apartment != null)
                        apartmentState = (ApartmentState)
                            System.Enum.Parse(typeof(ApartmentState), apartment, true);

                    string priority = settings["ThreadPriority"];
                    if (priority != null)
                        threadPriority = (ThreadPriority)
                            System.Enum.Parse(typeof(ThreadPriority), priority, true);
                }
            }
            catch (Exception ex)
            {
                string msg = string.Format("Invalid configuration setting in {0}",
                    AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
                throw new ApplicationException(msg, ex);
            }
        }
开发者ID:scottwis,项目名称:eddie,代码行数:36,代码来源:NUnitConfiguration.cs

示例14: DedicatedThreadPoolSettings

 public DedicatedThreadPoolSettings(int numThreads,
                                    string name = null,
                                    TimeSpan? deadlockTimeout = null,
                                    ApartmentState apartmentState = ApartmentState.Unknown,
                                    Action<Exception> exceptionHandler = null,
                                    int threadMaxStackSize = 0)
     : this(numThreads, DefaultThreadType, name, deadlockTimeout, apartmentState, exceptionHandler, threadMaxStackSize)
 { }
开发者ID:juergenhoetzel,项目名称:akka.net,代码行数:8,代码来源:Helios.Concurrency.DedicatedThreadPool.cs

示例15: InitializeThreadState

 private void InitializeThreadState(object threadParams, ThreadWorkerMethodWithReturn workerMethod, ApartmentState aptState, bool background)
 {
     this.threadParams = threadParams;
     this.threadWorkerMethodWithReturn = workerMethod;
     this.thread = new Thread(new ThreadStart(this.ThreadEntryPointMethodWithReturn));
     this.thread.SetApartmentState(aptState);
     this.backgroundThread = background;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:8,代码来源:ThreadDispatch.cs


注:本文中的ApartmentState类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。