クラスThread
は、継承できないという意味の密封クラスです。スレッドクラスを継承する再利用可能なThread
のインスタンスが必要です。誰かがどのようにトレッドを再利用できるか考えていますか?C#のスレッドクラスから継承できませんか?
7
A
答えて
20
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 override void RunThread()
{
// Do some stuff
}
}
あなたはそのアイディアを得ます。
+0
うん!私はそれを試してみましょう! – Xris
4
継承を使用する代わりに、コンポジションを使用することをお勧めします。クラスを作成し、Thread
のメンバーを持っています。次に、クラスのメソッドをマップして、スレッドメンバーからメソッドを呼び出し、必要に応じて他のメソッドを追加します。例:
public class MyThread
{
private Thread thread;
// constructors
public void Join()
{
thread.Join();
}
// whatever else...
}
関連する問題
- 1. AudioEffectから継承できません
- 2. 最終的なSnackbarから継承できません
- 3. ベースUIViewControllerクラスからプロパティを継承できません
- 4. 例外から継承できません
- 5. MultiLevel継承、クラスCはクラスAを継承できますか?
- 6. テンプレートからの継承C++
- 7. 継承された汎用は変換できませんか?
- 8. LINQ to SQL IsDiscriminator列は継承できませんか?
- 9. ボックスのCSSプロパティを親から継承しません。
- 10. シングルトンは、アプリケーションデリゲートから別のビューコントローラに継承されません
- 11. 親クラスからのC#プロパティの継承
- 12. PHP/pthreadsスレッドクラスは配列を使用できませんか?
- 13. Dockerコンテナはホストからulimitを継承しません
- 14. C++クラスからNSObjectを継承
- 15. クラスから継承したクラスとDelphiのインターフェイスから継承するクラスを作成できますか?
- 16. Visual Studio 2010 C++は参照プロジェクトからのインクルードパスを継承できますか?
- 17. ブーストから継承できますか?フュージョンシーケンスですか?
- 18. C++の継承はスタック上で動作していませんか?
- 19. ListViewItemCollectionから継承
- 20. asp:validationsummaryから継承
- 21. SPManagedObjectから継承
- 22. テンプレートクラスから継承
- 23. Forms.Timerから継承
- 24. Theme.AppCompatから継承*
- 25. バックグラウンドカラーを "none"でオーバーライドできません。 "継承"のみ
- 26. Mavenプロファイルは別のMavenプロファイルから継承できますか?
- 27. このクラスから継承できますか?
- 28. Android:ウィジェットの継承 "メソッドを解決できません"
- 29. なぜ私は継承でBASEを使用できません
- 30. Silverlight 4プロジェクトでStyleSelectorを継承できません
試してみますか? – Erix
スレッドが動作の観点から再利用できない場合、再開可能なスレッドはどのような意味を持っていますか? – TomTom
代わりにThreadPoolを使わないのはなぜですか? –