using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using WCS.Workflow; namespace WCS.WFormServices { public partial class FromServices : Form { private delegate void UIRefresh(string message);//代理 private event UIRefresh fc;//界面更新事件 public FromServices() { InitializeComponent(); this.fc += new UIRefresh(ThreadFunction); } private void ThreadFunction(string message) { this.lblMessage.Text = message; } private void btnStart_Click(object sender, EventArgs e) { Thread thread = new Thread(StartService); thread.Start(); } private void StartService() { this.btnStart.Invoke(new MethodInvoker(delegate { this.btnStart.Enabled = false; this.btnClose.Enabled = false; })); try { this.Invoke(fc, new object[] { "WCS服务正在启动..." });//通过代理调用刷新方法 InitWorkflow.InitData(); QuartzStartup.Start().Wait(); this.Invoke(fc, new object[] { "WCS服务正常启动,正在执行定时任务..." });//通过代理调用刷新方法 } catch (Exception ex) { this.Invoke(fc, new object[] { ex.Message });//通过代理调用刷新方法 this.btnStart.Enabled = true; } this.btnStart.Invoke(new MethodInvoker(delegate { this.btnClose.Enabled = true; })); } private void btnClose_Click(object sender, EventArgs e) { Thread thread = new Thread(StopService); thread.Start(); } private void StopService() { this.btnStart.Invoke(new MethodInvoker(delegate { this.btnClose.Enabled = false; this.btnStart.Enabled = false; })); try { this.Invoke(fc, new object[] { "服务正在停止..." });//通过代理调用刷新方法 QuartzStartup.Stop(); this.Invoke(fc, new object[] { "服务已经停止。" }); } catch (Exception ex) { this.Invoke(fc, new object[] { ex.Message }); this.btnClose.Enabled = true; } this.btnStart.Invoke(new MethodInvoker(delegate { this.btnStart.Enabled = true; })); } private void FromServices_FormClosing(object sender, FormClosingEventArgs e) { try { QuartzStartup.Stop(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }