protected override void OnStart(string[] args) { Thread.MemoryBarrier(); var agent = _agent; Thread.MemoryBarrier(); if (agent == null) { //this.TraceData(TraceEventType.Information, "TMailAgent OnStarting .."); WriteDebugLine("OnStarting .."); agent = new TMailService(); agent.OnWriteLine += new LineWriterDelegate(agent_OnWriteLine); if (Interlocked.CompareExchange(ref _agent, agent, null) == null) { //WriteLine("OnStart Begin"); //this.TraceData(TraceEventType.Information, "TMailAgent OnStart Begin"); WriteDebugLine("PerformStart Begin"); PerfromStart(agent); WriteDebugLine("PerformStart Done"); //this.TraceData(TraceEventType.Information, "TMailAgentService started"); } //this.TraceData(TraceEventType.Information, "TMailAgent OnStart Completed .."); } }
private static void PerformStart() { Thread.MemoryBarrier(); var svc = __agent; Thread.MemoryBarrier(); if (svc == null) { svc = new TMailService(); if (Interlocked.CompareExchange(ref __agent, svc, null) == null) { svc.StartAgentLogic((s, t) => { svc.OnWriteLine += OnWriteLine; OnWriteLine(s, "Agent service started"); }); } } }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { components = new System.ComponentModel.Container(); this.ServiceName = String.Concat("TMail Agent v", Assembly.GetExecutingAssembly().GetName().Version); this._agent = null; }
private void PerfromStart(TMailService agent) { try { //this.TraceData(TraceEventType.Information, "TMailAgent PerformStarting .."); WriteDebugLine("PerformStart Begin.."); //this.LogInfo("TMailAgent PerformStarting .."); agent.StartAgentLogic(null); WriteDebugLine("PerformStart Done.."); //this.TraceData(TraceEventType.Information, "TMailAgent PerformStarted .."); //this.LogInfo("TMailAgent PerformStarted .."); } catch (Exception ex) { //this.TraceData(TraceEventType.Information, "TMailAgent failed to PerformStart: {0}", ex.Message); //this.LogInfo("TMailAgent failed to PerformStart: {0}",ex.Message); //this.TraceData(TraceEventType.Error, "Unexpected Error In PerformStart", ex.FormatForLogging()); YPMon.Critical("TMailAgentService", "Unexpected Error In PerformStart", ex.FormatForLogging()); throw; } }