该类Thread是一个密封类,意味着它不能继承,我需要一个Thread应该从Thread类继承的可重用实例.有谁知道如何重复使用胎面?
ros*_*dia 26
正如你自己指出的那样,Thread是一个密封的课程.显然这意味着你不能继承它.但是,您可以创建自己的BaseThread类,您可以继承并覆盖它以使用Composition提供自定义功能.
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 MyThread()
: base()
{
}
public override void RunThread()
{
// Do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
你明白了.
使用继承的更好替代方法是使用组合。创建您的类并拥有类型为 的成员Thread。然后映射类的方法以从 Thread 成员调用方法,并添加您可能希望的任何其他方法。例子:
public class MyThread
{
private Thread thread;
// constructors
public void Join()
{
thread.Join();
}
// whatever else...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14300 次 |
| 最近记录: |