Здравствуйте, я новичок в потоках topi c, мне нужно добавить Mutex в мой сервис windows, потому что всякий раз, когда я его запускаю, он появляется снова и снова с awesome.exe, что fantasti c. бит открывается, если он закрыт.
Fantasti c .bat
@echo off
:1
"C:\awesome.exe"
goto :1
Я сделал C# проект для создания * Служба 1036 *, я выполнил это руководство , проследить за ним было довольно просто и вуаля! Я получил windows сервис, как и ожидалось, однако я думаю, что мьютекс будет подходящим средством, чтобы избежать многократного открытия многих процессов
MyService.cs
using System;
using System.ServiceProcess;
using System.Timers;
namespace Good_enough_service
{
public partial class GoodService : ServiceBase
{
private Timer _syncTimer = null;
public GoodService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
_syncTimer = new Timer();
this._syncTimer.Interval = 1000;
this._syncTimer.Elapsed +=
new System.Timers.
ElapsedEventHandler(this.syncTimerTicker);
_syncTimer.Enabled = true;
}
protected override void OnStop()
{
_syncTimer.Enabled = false;
}
private void syncTimerTicker(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\fantastic.bat");
}
}
}
Мне удалось установить службу, но она часто всплывает, и поэтому она часто открывается мой awesome.exe
I ' Я смотрю на множество примеров использования Mutex в stackoverflow, документах Microsoft и запросах Google, однако, если честно, поскольку я очень новичок в этом топи c Я немного запутался в том, как создавать это может кто-нибудь помочь мне, как реализовать это?
Program.cs Это часть сервисного проекта
using System.ServiceProcess;
namespace Good_enough_service
{
static class Program
{
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new GoodService()
};
ServiceBase.Run(ServicesToRun);
}
}
}