public static class Extensions
{
public static Thread CreateAndRunThread(this ThreadStart ts) { Thread t = CreateThread(ts); t.Start(); return t; }
public static Thread CreateThread(this ThreadStart ts)
{
Thread t = new Thread(ts);
t.TrySetApartmentState(ApartmentState.MTA);
t.Priority = ThreadPriority.Normal;
t.IsBackground = true;
return t;
}
}
ThreadStart这个委托的两个扩展方法,分别简化了线程创建和执行流程,看命名就知道了。
我的理解:
利用静态类将关于线程的这两个方法给密封在了Extensions这个空间中。
CreateAndRunThread
{利用Thread CreateThread(this ThreadStart ts)得到一个线程,并使其运行};
CreateThread
{创建一个线程,并确定其线程状态,给予较高优先级,并将其标为后台线程}
就是一个扩展方法..
这个代码做的事情就是创建一个线程,并确定其线程状态,给予较高优先级,并将其标为后台线程,这个代码设计就是Java设计模式中的单一职责,一个方法或一类只负责一个功能的实现。上面代码的线程创建和运行分开实现,符合这一特点。