订阅事件的方法的命名,通常为“On事件名”
C#中通常一个属性对应一个类型成员
事件访问器(Event Accessor)
通过Delegate基类的GetInvocationList()静态方法,可以获得这个委托链表
Thread.Sleep(TimeSpan.FromSeconds(3)); // 模拟耗时三秒才能完成方法
后台线程(Background Thread),
前台线程(Foreground Thread),
Thread.Sleep(),它会让执行当前代码的线程暂停一段时间(如果你对线程的概念比较陌生,可以理解为使程序的执行暂停一段时间),以毫秒为单位,比如Thread.Sleep(1000),将会使线程暂停1秒钟。在上面我使用了它的重载方法,个人觉得使用TimeSpan.FromSeconds(1),可读性更好一些。
Thread.CurrentThread.Name,通过这个属性可以设置、获取执行当前代码的线程的名称,值得注意的是这个属性只可以设置一次,如果设置两次,会抛出异常。
Thread.IsThreadPoolThread,可以判断执行当前代码的线程是否为线程池中的线程。