クラス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. QAbstractItemModelから継承できません
- 2. AudioEffectから継承できません
- 3. MultiLevel継承、クラスCはクラスAを継承できますか?
- 4. テンプレートからの継承C++
- 5. 最終クラスから継承できません
- 6. CXFクライアントは "java.lang.VerifyError:最終クラスから継承できません"
- 7. Xcode 8:フレームワークからクラスを継承できません
- 8. 最終的なSnackbarから継承できません
- 9. java.lang.VerifyError:最終クラスから継承できません
- 10. Tkinterは親クラスから関数を継承できません
- 11. 例外から継承できません
- 12. ベースUIViewControllerクラスからプロパティを継承できません
- 13. Java GMail api - java.lang.VerifyError:最終クラスから継承できません
- 14. C++ 11テンプレートの継承をキャストできません
- 15. コンストラクタをC++で継承できません
- 16. 継承作業はできません
- 17. C#継承してもインターフェイスにキャストできません
- 18. 親クラスからのC#プロパティの継承
- 19. フォームは基本フォームクラスから継承しませんか?
- 20. LINQ to SQL IsDiscriminator列は継承できませんか?
- 21. 継承された汎用は変換できませんか?
- 22. スレッドクラスのメソッドにアクセスできませんか?
- 23. シングルトンは、アプリケーションデリゲートから別のビューコントローラに継承されません
- 24. ボックスのCSSプロパティを親から継承しません。
- 25. C++クラスからNSObjectを継承
- 26. フォームから継承するC#
- 27. ジェネリックインターフェイスから継承するC#
- 28. Atom APIから継承するクラスに変数を作成できません
- 29. wordpressは開発者から継承され、今はログインできません
- 30. HashMapオブジェクトはMapクラスから "computeIfAbsent"メソッドを継承できません
試してみますか? – Erix
スレッドが動作の観点から再利用できない場合、再開可能なスレッドはどのような意味を持っていますか? – TomTom
代わりにThreadPoolを使わないのはなぜですか? –