servicestopped.cs

来自「Oracle Service Manager」· CS 代码 · 共 57 行

CS
57
字号
using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading;

namespace kae.ServiceStatePublisher
{
	/// <summary>
	/// ServiceStopped is a concrete ServiceState representing the 
	/// ServiceController state of stopped.  As a singleton, only 
	/// one instance of this class is needed for the application.
	/// </summary>
	public class ServiceStopped : ServiceState
	{
		private static ServiceStopped _instance;

		static ServiceStopped()
		{
			lock (typeof(ServiceStopped))
			{
				if (_instance == null)
					_instance = new ServiceStopped();
			}
		}

		public static ServiceStopped Instance
		{
			get { return _instance; }
		}

		public override void Start( ServiceContext context)
		{
			try
			{
				context.Controller.Start();
				context.Controller.WaitForStatus( ServiceControllerStatus.Running, new TimeSpan(0,0,30));
				ChangeState( context, ServiceRunning.Instance);
			}
			catch (TimeoutException te)
			{
				LogError( te.Message, EventLogEntryType.Warning);
				throw;
			}
		}

		public override string Status
		{
			get { return "Stopped"; }
		}

		public override bool IsStopped
		{
			get { return true; }
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?