using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using Feiyunyu.Tool;
using System.Configuration;
namespace ProceRun
{
public partial class AutoRun : Form
{
private System.Threading.Timer stateTimer;
private System.Threading.Timer endTimer;
public AutoRun()
{
InitializeComponent();
ProceAutoRun();
}
/// <summary>
/// 多线程开启关闭定时器
/// </summary>
public void ProceAutoRun()
{
string proceName = ConfigurationSettings.AppSettings["ProceName"];
string proceRName = ConfigurationSettings.AppSettings["ProceRName"];
string time = ConfigurationSettings.AppSettings["RunTime"];
int waitTime = 1920000; //默认32分钟
Int32.TryParse(time, out waitTime);
//执行定时器
stateTimer =new System.Threading.Timer(new TimerCallback(ExecuteProce), proceName, 0, -1);//小于1则只执行一次。
endTimer = new System.Threading.Timer(new TimerCallback(CloseProce), proceRName, waitTime, -1);
}
/// <summary>
/// 开始执行程序
/// </summary>
/// <param name="proceName"></param>
public void ExecuteProce(object proceName)
{
System.Diagnostics.Process.Start(proceName.ToString());
WriteSendMailLog("开始执行。");
}
/// <summary>
/// 结束线程
/// </summary>
/// <param name="proceName"></param>
public void CloseProce(object proceName)
{
try
{
System.Diagnostics.Process[] proce = System.Diagnostics.Process.GetProcessesByName(proceName.ToString());
foreach (System.Diagnostics.Process p in proce)
{
p.Kill();
}
WriteSendMailLog("结束执行");
}
catch
{
stateTimer.Dispose();
endTimer.Dispose();
WriteSendMailLog("执行失败");
return;
}
stateTimer.Dispose();
endTimer.Dispose();
}
#region 日志类
/// <summary>
/// 日志类
/// </summary>
/// <param name="fromUser">发件者</param>
/// <param name="toUser">收件者</param>
/// <param name="result">结果</param>
public void WriteSendMailLog(string context)
{
Feiyunyu.Tool.Logger logger = new Feiyunyu.Tool.Logger("Run_Log");
string time = string.Format("[时间:{0}]", DateTime.Now.ToString());
logger.AppendLine(time);
string messge = context;
logger.AppendLine(messge);
logger.Save();
}
#endregion
}
}
联系客服