100165813.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 597 行 · 第 1/3 页
HTM
597 行
</tr>
<tr>
<td width=136 valign=top style='width:101.65pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>#
of Requests / sec</span></p>
</td>
<td width=267 valign=top style='width:200.35pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span style='font-family:宋体;
color:black'>一秒内请求的总数</span><span lang=EN-US style='color:black'>#</span></p>
</td>
<td width=185 valign=top style='width:138.45pt;border:none;border-bottom:
solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>NumberOfItems32</span></p>
</td>
</tr>
</table>
</div>
<p class=MsoNormal style='margin-top:8.15pt'><span lang=EN-US style='color:
black'>Performance Counter Builder</span><span style='font-family:宋体;
color:black'>把配置写到性能数据库中。使用</span><span lang=EN-US style='color:black'>System.Diagnostics</span><span
style='font-family:宋体;color:black'>命名空间中</span><span lang=EN-US
style='color:black'>PerformanceCategory</span><span style='font-family:宋体;
color:black'>类的</span><span lang=EN-US style='color:black'>Create()</span><span
style='font-family:宋体;color:black'>方法,可以动态地把配置写到性能数据库中。使用</span><span
lang=EN-US style='color:black'>Visual Studio .NET</span><span style='font-family:
宋体;color:black'>,可以在以后为其他系统添加安装程序。</span></p>
<h4 style='FTEL:21.45pt'><span lang=EN-US>3. </span><span
style='font-family:黑体'>添加</span><span lang=EN-US style='color:black'>PerformanceCounter</span><span
style='font-family:黑体;color:black'>组件</span></h4>
<p class=MsoNormal><span style='font-family:宋体'>接下来,要从工具箱中添加</span><span
lang=EN-US style='color:black'>PerformanceCounter</span><span style='font-family:
宋体;color:black'>组件</span><span style='font-family:宋体'>。这里不使用<span
style='color:black'>工具箱的种类组件,而是直接把前面创建的性能计数从</span></span><span lang=EN-US
style='color:black'>Server Explorer</span><span style='font-family:宋体;
color:black'>拖放到设计视图上。这样实例会自动配置:所有对象的</span><span lang=EN-US style='color:black'>CategoryName</span><span
style='font-family:宋体;color:black'>属性都设置为</span><span lang=EN-US
style='color:black'>Quote Service Count</span><span style='font-family:宋体;
color:black'>,</span><span lang=EN-US style='color:black'>CounterName</span><span
style='font-family:宋体;color:black'>属性设置为选中种类中的一个可用值。这个应用程序不是读取性能计数,而是写入,所以必须把</span><span
lang=EN-US style='color:black'>ReadOnly</span><span style='font-family:宋体;
color:black'>属性设置为</span><span lang=EN-US style='color:black'>false</span><span
style='font-family:宋体;color:black'>。</span></p>
<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US> private void
InitializeComponent()</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
{</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
//...</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// performanceCounterRequestsPerSec</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsPerSec.CategoryName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"Quote Service Counts";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsPerSec.CounterName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"# of Requests / sec";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.MachineName = "NAGELC"</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsPerSec.ReadOnly = false;</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// performanceCounterBytesSentTotal</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.CategoryName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"Quote Service Counts";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.CounterName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"# of Bytes sent";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.MachineName = "NAGELC"</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.ReadOnly = false;</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// performanceCounterBytesSentPerSec</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentPerSec.CategoryName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"Quote Service Counts";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentPerSec.CounterName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"# of Bytes sent / sec";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.MachineName = "NAGELC"</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentPerSec.ReadOnly = false;</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// performanceCounterRequestsTotal</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsTotal.CategoryName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"Quote Service Counts";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsTotal.CounterName = </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
"# of Requests";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterBytesSentTotal.MachineName = "NAGELC"</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
this.performanceCounterRequestsTotal.ReadOnly = false;</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:74.55pt'><span lang=EN-US>//...</span></p>
<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
}</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>对于性能值的计算,必须给类</span><span
lang=EN-US style='color:black'>QuoteServer</span><span style='font-family:宋体;
color:black'>添加两个私有变量</span><span lang=EN-US style='color:black'>requestPerSec</span><span
style='font-family:宋体;color:black'>和</span><span lang=EN-US style='color:black'>bytesPerSec</span><span
style='font-family:宋体;color:black'>。</span></p>
<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US> public class QuoteServer :
System.ComponentModel.Component</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
{</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
private int requestsPerSec;</span></p>
<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
private int bytesPerSec;</span></p>
<p class=MsoNormal><span style='font-family:宋体'>在</span><span lang=EN-US>QuoteServer</span><span
style='font-family:宋体'>类的</span><span lang=EN-US>Listener()</span><span
style='font-family:宋体'>方法中,直接增加显示总值的性能计数。</span><span lang=EN-US
style='letter-spacing:.2pt'>PerformanceCounter.</span><span lang=EN-US
style='letter-spacing:.2pt'>Increment()</span><span style='font-family:宋体;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?