1. Trace & Debug

理解这两者的区别,Trace有个Listners.Add()非常好用,这里网上有个在ListBox里输出Debug和Trace信息的

 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Diagnostics;
 using System.Windows.Forms;
 using System.Threading;

 namespace ControlTest
 {
     public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
             Trace.Listeners.Add(new ListBoxLogTraceListener(listBox1));
             Debug.Listeners.Add(new TextWriterTraceListener(System.IO.File.CreateText("log.txt")));
             Debug.AutoFlush = true;
         }

         private void Form1_Load(object sender, EventArgs e)
         {
             //Thread newThread = new Thread(new ThreadStart(run));
             //newThread.Start();
         }

         private void button1_Click(object sender, EventArgs e)
         {
             Debug.WriteLine(string.Format("{0}: {1}", DateTime.Now, "Debug msg..."));
         }

         private void button2_Click(object sender, EventArgs e)
         {
             Trace.WriteLine(string.Format("{0}: {1}", DateTime.Now, "Trace msg..."));
         }
         private void run()
         {
             while (true)
             {
                 Debug.WriteLine("Debug msg...");
                 Thread.Sleep();
                 Trace.WriteLine("Trace msg...");
                 Thread.Sleep();
             }
         }
     }

     public class ListBoxLogTraceListener : DefaultTraceListener
     {
         private ListBox m_ListBox { get; set; }
         public ListBoxLogTraceListener(ListBox listBox)
         {
             m_ListBox = listBox;
         }
         public override void WriteLine(string message)
         {
             if (!m_ListBox.Visible) return;
             if (m_ListBox.InvokeRequired)
             {
                 m_ListBox.BeginInvoke(new MethodInvoker(delegate { WriteLine(message); }));
                 return;
             }
             m_ListBox.Items.Add(message);
         }
     }
 }

.NET: C#: System.Diagnostics的更多相关文章

  1. System.Diagnostics.Process.Start的妙用

    我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...

  2. System.Diagnostics.Process 启动进程资源或调用外部的命令的使用

    经常看到一些程序在保存为一个txt,或者excel的文件的时候,保存完毕立即打开, 启动程序或打开文件的代码 System.Diagnostics.Process.Start(System.IO.Pa ...

  3. System.Diagnostics.Process.Star的用法

    System.Diagnostics.Process.Start(); 能做什么呢?它主要有以下几个功能: 1.打开某个链接网址(弹窗). 2.定位打开某个文件目录. 3.打开系统特殊文件夹,如“控制 ...

  4. System.Diagnostics.Trace.Listeners

    System.Diagnostics.Trace.Listeners.Clear(); System.Diagnostics.Trace.AutoFlush = true; System.Diagno ...

  5. System.Diagnostics.Debug和System.Diagnostics.Trace 【转】

    在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类——debug ...

  6. WPF中System.Diagnostics.Process.Start的妙用

    我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案 ...

  7. System.Diagnostics.Stopwatch

    System.Diagnostics.Stopwatch 注意:此类在 .NET Framework 2.0 版中是新增的.MSDN Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量 ...

  8. using System.Diagnostics; 日志操作

    using System.Diagnostics 命名空间 包含了能够与系统进程 事件日志 和性能计数器进行交互的类 一般用于帮助诊断和调试应用程序 例如 Debug类用于帮组调试代码 Process ...

  9. C# System.Diagnostics.Stopwatch 类

    测量一个时间间隔的运行时间 a.调用 Start 方法 b.调用 Stop 方法 c.使用 Elapsed 属性检查运行时间. 如: System.Diagnostics.Stopwatch stop ...

随机推荐

  1. nginx php解析过慢

    nginx 报错 upstream timed out (110: Connection timed out)解决方案 error.log报错如下: 2013/05/18 21:21:36 [erro ...

  2. Windows与Linux共享文件夹互相访问

    [原文]  首先安装并配置软件samba [html] view plain copy sudo yum install samba samba-client vim /etc/samba/smb.c ...

  3. FTS抓包看AVDTP

    1.概述   测试过程为打开Audio连接,没有听音乐,人后断开Audio连接,主要目的是为了测试AVDTP的工作流程.   2.Frame分析    首先贴出抓取的关于AVDTP的包: 在L2CAP ...

  4. UML时序图总结

    前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...

  5. Linux下对各种压缩文件处理

    Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲ta ...

  6. EntityFramework更新数据

    1.TryUpdateModel 使用很方便,但实际更新数据的过程还是先select,再update.另外发现一个问题,对于input的type类型file的字段,无法使用TryUpdateModel ...

  7. jQurey 获取当前时间

    <script type="text/javascript"> $(document).ready(function () { var myDate = new Dat ...

  8. Selenium2学习-002-Selenium2 Web 元素定位及 XPath 编写演示示例

    此文主要对 Selenium2 的 Web 元素定位及 XPath 编写示例,敬请各位亲们参阅,共同探讨.若有不足之处,敬请各位大神指正,不胜感激! 通过 Firefox(火狐)浏览器的插件 Fire ...

  9. 【转】Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用

    Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用 分类: Android UI2015-06-15 16: ...

  10. c# ini file

    ini文件主要用于保存配置.之前一直以为是当作普通文本进行操作,读取里面的内容,再自己解析读取的文本.后来发现已经有写好的api函数:WritePrivateProfileString()和GetPr ...