2011-08-16 10 views

答えて

4

Actionには、探している署名があります。ただし、Runnableと同じことを意味するわけではありません。Runnableは、run()メソッドがThreadで実行されることを意図していますが、Actionは何も表示しません。そのためには、同じ署名を持つThreadStartが必要であり、その指示をします。

パラメータを持たないデリゲートが必要な場合は、Actionが必要です。スレッドを扱い、開始メソッドを指定する必要がある場合は、ThreadStartを使用してください。

1

いいえ。 C#ではJavaとスレッドの処理方法が異なります。 Javaでは、RunnableインタフェースはThreadをサブクラス化する代わりに使用できますが、新しいThreadオブジェクトを作成して、そのRunnableをコンストラクタに渡す必要があります。

Threadクラスをサブクラス化するのではなく、新しいSystem.Threading.Threadオブジェクトを作成し、ThreadStartデリゲート(これは作業を行う関数です)に渡すだけです。 ThreadStartは、JavaのRunnableと同じC#です。

しかし、Action代理人は、あなたが話すパラメータがvoidです。