Java では を拡張Thread
または実装できますRunnable
が、C# で同等のものは何ですか? 実行可能な実装に少し似ているものしか見つかりませんが、有用なものは何もありません。
1 に答える
8
いいえ、Thread
C# では拡張しません。通常、Java でも拡張しないでください。Runnable
(インターフェースを実装するだけです。)
代わりに、新しいスレッドを開始する場合は、ThreadStart
デリゲートまたはデリゲートのいずれかのインスタンスを作成し、ParameterizedThreadStart
それを のコンストラクターに渡しThread
ます。
短いが完全な例を次に示します。
using System;
using System.Threading;
class Test
{
public static void Main(string[] args)
{
ThreadStart action = Count;
Thread thread = new Thread(action);
thread.Start();
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thread...");
Thread.Sleep(1000);
}
}
static void Count()
{
for (int i = 0; i < 20; i++)
{
Console.WriteLine("Secondary thread...");
Thread.Sleep(300);
}
}
}
デリゲートの詳細については、トピックに関する私の記事を参照してください。
スレッド化の詳細については、Joe Albahari のスレッド化チュートリアルを参照してください。
正直なところ、最近はSystem.Threading.Tasks.Task
代わりに使用する必要があります。生のスレッドだけでなく、より高いレベルの抽象化を使用してみてください。
于 2012-11-14T15:29:06.810 に答える