当前位置: 首页>>代码示例>>C#>>正文


C# ServiceController.Action方法代码示例

本文整理汇总了C#中ServiceController.Action方法的典型用法代码示例。如果您正苦于以下问题:C# ServiceController.Action方法的具体用法?C# ServiceController.Action怎么用?C# ServiceController.Action使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ServiceController的用法示例。


在下文中一共展示了ServiceController.Action方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateTimer

        public void CreateTimer(ServiceController.ServiceTimerParameters parameters)
        {
            if(!CanStop)
            {
                return;
            }

            //TODO: make ticks run in another thread //System.Threading.Thread.CurrentThread.ManagedThreadId

            lock(_timerList)
            {
                var timer = new Timer(parameters.Interval);
                _timerList.Add(timer);

                var errorHandlingAction = new Action
                    (() =>
                     {
                         try
                         {
                             if(parameters.Validate != null && !parameters.Validate(DateTime.Now))
                             {
                                 return;
                             }

                             parameters.Action();
                         }
                         catch(Exception e)
                         {
                             Logger.Error(e);
                             if(parameters.ErrorReporting)
                             {
                                 //TODO make error reporting class with += support, mail + webservice
                                 /*
                                 try
                                 {
 
                                     var client = new SmtpClient
                                     {
                                         Port = ?,
                                         DeliveryMethod = SmtpDeliveryMethod.Network,
                                         UseDefaultCredentials = false,
                                         Host = "?",
                                         Credentials = new NetworkCredential("?", "?")
                                     };
                                     var mail = new MailMessage("?", "?")
                                     {
                                         Subject = $"Service Exception: {AssemblyUtils.GetEntryAssembly().GetName().Name}",
                                         Body = e.ToString()
                                     };
                                     mail.CC.Add("?");
                                     
                                     client.Send(mail);
 
                                 }
                                     catch (Exception)
                                     {
                                         Logger.Error(e);
                                     }
                                 }
                          */
                             }
                         }
                     });

                timer.Elapsed += (sender, args) =>
                {
                    Logger.Trace("Timer {0} tick: {1}", sender.GetHashCode(), args.SignalTime);
                    errorHandlingAction();
                };
                errorHandlingAction();
                timer.Enabled = true;
            }
        }
开发者ID:stewshka,项目名称:Suigetsu,代码行数:73,代码来源:ServiceWrapper.cs


注:本文中的ServiceController.Action方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。