I always thought the timing program was so mysterious. Later, when I actually wrote a small timing program myself, I found that it was not as difficult as I thought. Below, I will share my own operation process, hoping it will be helpful to everyone.
1) Add a reference file to our project: (dll defines an ITask interface, and defines two methods Initialize and HandleConditionsMetEvent);
2) Create a time-triggered class: (the class name is defined by yourself), and this class must implement interface ITask. The specific code is as follows:
public class SyncTask : ITask { //Accept the variables of the passed parametersprivate string configName; /// <summary> /// Specific operation code/// </summary> public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e) { try { // Here is the specific operation} catch (Exception ex) { //Top an exception and record the error log} } /// <summary> /// Initialization/// </summary> /// <param name="schedule"></param> /// <param name="parameters">parameters (this parameter is passed when the timed setting is triggered)</param>public void Initialize(ScheduleDefinition schedule, object parameters) { //Initialize variables through passed parametersconfigFileName = (); try { //Initialization specific code} catch (Exception e) { //Top an exception and record the error log} } }
3) Configuration file, configuration file parameter setting instructions:
a. <at></at> is a Task. If different programs are triggered at different times, multiple <at> need to be set; name: is the name of each <at>, which can be named according to your needs; month: in which month the Task is triggered, * means that it is triggered every month; day of Month: what day of each month is triggered, * means that it is triggered every day; day of Week: how many hours of each week is triggered, * means that it is triggered every day; hour: how many minutes of each day is triggered, * means that it is triggered once every hour; minute: how many minutes of each hour is triggered, 58 means that it is triggered 58 minutes of each hour; second: how many seconds of each minute is triggered.
b. <task> is the class that needs to be triggered, type: "The detailed address of the class that needs to be triggered (project name. folder name. class name), project name, Version, Culture, PublicKeyToKen", parameters: the parameters that need to be passed, if the parameter is not passed, it can be set to "";
<taskSchedulerEngine> <schedule> <at name="TaskName" month="*" dayOfMonth="*" dayOfWeek="*" hour="*" minute="58" second="0" kind="Local"> <execute> <task type=", Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" parameters="" /> </execute> </at> </schedule> </taskSchedulerEngine>
4) The main program starts the timing program:
();
OK, so far, a complete scheduled program has been written. Friends, everyone is welcome to give their valuable suggestions.