Метод Debugger.Launch - это хороший способ, но я предпочитаю создать класс, который выполняет обработку и вызывает его из службы. Затем его также можно вызывать из приложения выигрышных форм.
например:
class ProcessingManager
{
public void Start()
{
//do processing
}
public void Stop()
{
//stop
}
}
затем в вашем приложении service / win form просто создайте экземпляр класса обработки в качестве переменной-члена и вызовите метод при запуске и остановке. Его можно использовать в сервисе или в приложении для запуска форм с кнопкой «Пуск» и «Стоп», который я нахожу намного быстрее, чем каждый раз подключать отладчик, потому что вы можете настроить запуск приложения Windows по умолчанию и добавить любые точки останова в обработку. менеджер.
выписка из сервисного кода:
namespace Service
{
public partial class Service : ServiceBase
{
#region Members
private ProcessingManager m_ProcessingManager = null;
#endregion Members
#region Constructor
/// <summary>
/// Constructor
/// </summary>
public Service()
{
InitializeComponent();
try
{
//Instantiate the processing manager
m_ProcessingManager = new ProcessingManager();
}
catch (Exception ex)
{
ErrorHandler.LogError(ex);
}
}
#endregion Constructor
#region Events
/// <summary>
/// Starts the processing
/// </summary>
/// <param name="args">Parameters</param>
protected override void OnStart(string[] args)
{
try
{
//Start the Processing
m_ProcessingManager.Start();
}
catch (Exception ex)
{
ErrorHandler.LogError(ex);
}
}
/// <summary>
/// Service Stopped
/// </summary>
protected override void OnStop()
{
try
{
//Stop Processing
m_ProcessingManager.Stop();
}
catch (Exception ex)
{
ErrorHandler.LogError(ex);
}
}
#endregion Events
}
}