无法从C#中的Thread类inheritance?

Thread类是一个密封类,意味着它不能inheritance而且我需要一个应该从Thread类inheritance的可重用Thread的实例。 有谁知道如何重复使用胎面?

正如您自己所说, Thread是一个密封的类。 显然这意味着你无法inheritance它。 但是,您可以创建自己的BaseThread类,您可以inheritance并覆盖它以使用Composition提供自定义function。

 abstract class BaseThread { private Thread _thread; protected BaseThread() { _thread = new Thread(new ThreadStart(this.RunThread)); } // Thread methods / properties public void Start() => _thread.Start(); public void Join() => _thread.Join(); public bool IsAlive => _thread.IsAlive; // Override in base class public abstract void RunThread(); } public MyThread : BaseThread { public override void RunThread() { // Do some stuff } } 

你明白了。

使用inheritance的一个更好的替代方法是使用Composition。 创建您的类并拥有Thread类型的成员。 然后映射类的方法以从Thread成员调用方法并添加您可能希望的任何其他方法。 例:

 public class MyThread { private Thread thread; // constructors public void Join() { thread.Join(); } // whatever else... }