servicepaused.cs

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

CS
76
字号
using System;
using System.Diagnostics;
using System.ServiceProcess;

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

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

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

		public override void Start( ServiceContext context)
		{
			Continue( context);
		}

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

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

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

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

⌨️ 快捷键说明

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