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.Data.SqlClient;
using System.Collections;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
namespace WorkFlow
{
public partial class Server : Form
{
private delegate void FlushClient();//代理
private delegate void ReadTime(); //设置时间代理
Thread thread = null;
Thread threadTime = null; //计时器
int counter = 0;
private static readonly string startTime = DateTime.Now.ToString();
public Server()
{
InitializeComponent();
}
///
/// 加载load事件
///
///
///
private void Server_Load(object sender, EventArgs e)
{
DoWorkList();
this.txtSetTime.Text = Convert.ToString(getTimeValue());
DoWorkTime();
}
#region 加载运行日志列表
///
/// 线程工作
///
public void DoWorkList()
{
thread = new Thread(CrossThreadFlush);
thread.IsBackground = true;
thread.Start();
}
private void CrossThreadFlush()
{
while (true)
{ //将sleep和无限循环放在等待异步的外面
Thread.Sleep(getTimeValue());
ThreadFuntion();
}
}
///
/// 获取数据
///
///
public void ThreadFuntion()
{
if (this.dtReadList.InvokeRequired)//等待异步
{
FlushClient fc = new FlushClient(ThreadFuntion);
this.Invoke(fc); //通过代理调用刷新方法
}
else
{
counter += 1;
WorkFlow workflow = new WorkFlow();
Hashtable ht = new Hashtable();
// ht.Add("ID","");
// workflow.SaveWorkFlow(ht);
int index = this.dtReadList.Rows.Add();
this.dtReadList.Rows[index].Cells[0].Value = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
this.dtReadList.Rows[index].Cells[1].Value = counter; //workflow.GetAllOrderData().Tables[0].Rows.Count ;
}
}
#endregion
#region 查看程序已运行时间
///
/// 加载
///
public void DoWorkTime()
{
this.lblTime.Text = DateTime.Now.ToString("yyyy年mm月dd日 HH:mm:ss");
threadTime = new Thread(timeThread);//开启时间线程
threadTime.IsBackground = true;
threadTime.Start();
}
///
/// 时间线程
///
private void timeThread()
{
while (true)
{ //将sleep和无限循环放在等待异步的外面
Thread.Sleep(1000);
TimeThreadFuntion();
}
}
///
/// 时间计算方式
///
public void TimeThreadFuntion()
{
if (this.dtReadList.InvokeRequired)//等待异步
{
FlushClient fc = new FlushClient(TimeThreadFuntion);
this.Invoke(fc); //通过代理调用刷新方法
}
else
{
DateTime beginTime1 = DateTime.Parse(startTime);
DateTime endTime1 = DateTime.Parse(DateTime.Now.ToString());
TimeSpan midTime = endTime1 - beginTime1;
this.txtGetTime.Text = midTime.ToString();
}
}
#endregion
#region 设置每次执行的时间
///
/// 设置时间
///
///
///
private void btnSetTime_Click(object sender, EventArgs e)
{
Thread.Sleep(3000);
XmlDocument xmlDoc = new XmlDocument(); //声明xml
xmlDoc.Load("SetTimeXMLFile.xml");
//获取bookshop节点的所有子节点
XmlNodeList nodeList = xmlDoc.SelectSingleNode("setTime").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1; //转换类型
if (xe2.Name == "value")//如果找到
{
xe2.InnerText = this.txtSetTime.Text;//则修改
break;
}
}
}
xmlDoc.Save("SetTimeXMLFile.xml"); //保存其更改
MessageBox.Show("设置成功");
Thread.Sleep(1000);
}
///
/// 获取时间
///
///
public static int getTimeValue()
{
int time = 50000;
XmlDocument xmlDoc = new XmlDocument(); //声明xml
xmlDoc.Load("SetTimeXMLFile.xml");
//获取bookshop节点的所有子节点
XmlNodeList nodeList = xmlDoc.SelectSingleNode("setTime").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1; //转换类型
if (xe2.Name == "value")//如果找到
{
time = Convert.ToInt32(xe2.InnerText);
break;
}
}
}
return time;
}
#endregion
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章