创建控制台应用程序,引用Topshelf.dll。
public class TownCrier
{
HandleTopshelf Process = new HandleTopshelf();
readonly Timer _timer; //定时器
public TownCrier()
{
_timer = new Timer(TranDataType.ObjToInt(ConfigurationManager.AppSettings["TimerValue"]) * 1000) { AutoReset = true };
//AutoReset设置只执行一次还是每隔多久执行一次。
_timer.Elapsed += new ElapsedEventHandler(Process.OparStockData);
//具体操作在HandleTopshelf类的OparStockData方法中。
}
public void Start() { _timer.Start(); }
public void Stop() { _timer.Stop(); }
}
public class Program
{
public static void Main()
{
HostFactory.Run(x =>
{
x.Service<TownCrier>(s =>
{
s.ConstructUsing(name => new TownCrier());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("服务描述");
x.SetDisplayName("xxxxxxx");
x.SetServiceName("xxxxxxx");
});
}
}
public class ZhugeStockTopshelf
{
public void OparStockData(object source, System.Timers.ElapsedEventArgs e)
{
//服务要做的事情在这里。
}
}