VS2005开发设计中Timer控制无效的处理方式

2021-03-28 17:02 jianzhan
P> Timer控制无效的处理 BR> P> 在Windows 服务不引起记时器恶性事件 BR> P> 缘故: BR> P> 我觉得windows服务里不可以应用System.Windows.Forms的Timer控制,Windows.Forms 记时器部件用以 Windows.Forms 自然环境。WindowsForms 记时器部件无需于网络服务器自然环境,因此要应用System.Timer下的控制。 BR> P> 处理计划方案 BR> P> 这一能够根据改动控制的种类,把全部应用网络服务器计" />
文中详细介绍了应用VS2005开展开发设计时Timer控制无效的处理方式,大伙儿在具体开发设计全过程中能够参照一下……


Timer控制无效的处理


在Windows 服务不引起记时器恶性事件


缘故:


我觉得windows服务里不可以应用System.Windows.Forms的Timer控制,Windows.Forms 记时器部件用以 Windows.Forms 自然环境。WindowsForms 记时器部件无需于网络服务器自然环境,因此要应用System.Timer下的控制。


处理计划方案


这一能够根据改动控制的种类,把全部应用网络服务器记时器从取名室内空间 System.Timers 替代 System.Windows.Forms 记时器。如:


Service1.Designer.cs
1namespace nbsp;MyNewService
2{
3 nbsp;partial nbsp;class nbsp;MyNewService
4 nbsp;{
5 nbsp;/**//// nbsp;
6 nbsp;/// nbsp;必不可少的设计方案器自变量。
7 nbsp;/// nbsp;
8 nbsp;private nbsp;System.ComponentModel.ponents nbsp;= nbsp;null;
9
10 nbsp;/**//// nbsp;
11 nbsp;/// nbsp;清除全部已经应用的資源。
12 nbsp;/// nbsp;
13 nbsp;/// nbsp;假如应释放出来代管資源,为 nbsp;true;不然为 nbsp;false。
14 nbsp;protected nbsp;override nbsp;void nbsp;Dispose(bool nbsp;disposing)
15 nbsp;{
16 nbsp;if nbsp;(disposing nbsp; amp; amp; nbsp;(components nbsp;!= nbsp;null))
17 nbsp;{
ponents.Dispose();
19 nbsp;}
20 nbsp;base.Dispose(disposing);
21 nbsp;}
22
23 nbsp;部件设计方案器转化成的编码#region nbsp;部件设计方案器转化成的编码
24
25 nbsp;/**//// nbsp;
26 nbsp;/// nbsp;设计方案器适用需要的方式 nbsp;- nbsp;不必
27 nbsp;/// nbsp;应用编码编写器改动此方式的內容。
28 nbsp;/// nbsp;
29 nbsp;private nbsp;void nbsp;InitializeComponent()
30 nbsp;{
31 nbsp;this.eventLog1 nbsp;= nbsp;new nbsp;System.Diagnostics.EventLog();
32 nbsp;this.timer1 nbsp;= nbsp;new nbsp;System.Timers.Timer();
33 nbsp;((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
34 nbsp;((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();
35 nbsp;//
36 nbsp;// nbsp;timer1
37 nbsp;//
38 nbsp;this.timer1.Interval nbsp;= nbsp;2000;
39 nbsp;this.timer1.Elapsed nbsp;+= nbsp;new nbsp;System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
40 nbsp;//
41 nbsp;// nbsp;MyNewService
42 nbsp;//
43 nbsp;this.CanPauseAndContinue nbsp;= nbsp;true;
44 nbsp;this.CanShutdown nbsp;= nbsp;true;
45 nbsp;this.ServiceName nbsp;= nbsp; MyNewService
46 nbsp;((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
47 nbsp;((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();
48
49 nbsp;}
50
51 nbsp;#endregion
52
53 nbsp;private nbsp;System.Diagnostics.EventLog nbsp;eventLog1;
54 nbsp;private nbsp;System.Timers.Timer nbsp;timer1;
55
56 nbsp;}
57}Service1.cs:
1using nbsp;System;
2using nbsp;System.Collections.Generic;
3using nbsp;System.ComponentModel;
4using nbsp;System.Data;
5using nbsp;System.Diagnostics;
6using nbsp;System.ServiceProcess;
7using nbsp;System.Text;
8
9namespace nbsp;MyNewService
10{
11 nbsp;public nbsp;partial nbsp;class nbsp;MyNewService nbsp;: nbsp;ServiceBase
12 nbsp;{
13 nbsp;public nbsp;MyNewService()
14 nbsp;{
15 nbsp;InitializeComponent();
16 nbsp;if nbsp;(!System.Diagnostics.EventLog.SourceExists( MySource ))
17 nbsp;{
18 nbsp;System.Diagnostics.EventLog.CreateEventSource(
19 nbsp; MySource , nbsp; MyNewLog
20 nbsp;}
21 nbsp;eventLog1.Source nbsp;= nbsp; MySource
22 nbsp;eventLog1.Log nbsp;= nbsp; MyNewLog
23 nbsp;}
24
25 nbsp;protected nbsp;override nbsp;void nbsp;OnStart(string[] nbsp;args)
26 nbsp;{
27 nbsp;eventLog1.WriteEntry( In nbsp;OnStart
28 nbsp;this.timer1.Enabled nbsp;= nbsp;true;
29
30
31 nbsp;}
32
33 nbsp;protected nbsp;override nbsp;void nbsp;OnStop()
34 nbsp;{
35 nbsp;eventLog1.WriteEntry( In nbsp;onStop.
36 nbsp;this.timer1.Enabled nbsp;= nbsp;false;
37 nbsp;}
38
39 nbsp;protected nbsp;override nbsp;void nbsp;OnContinue()
40 nbsp;{
41 nbsp;eventLog1.WriteEntry( In nbsp;OnContinue.
42 nbsp;}
43
44
45
46 nbsp;private nbsp;void nbsp;timer1_Elapsed(object nbsp;sender, nbsp;System.Timers.ElapsedEventArgs nbsp;e)
47 nbsp;{
48 nbsp;eventLog1.WriteEntry( timer1_Tick. nbsp;+ nbsp;DateTime.Now.ToString());
49 nbsp;}
50
51
52 nbsp;}
53}

河源企业网站建设