-3

在 Java 中我可以扩展Thread或实现Runnable,C# 中的等价物是什么?我发现只有一些看起来有点像可运行的工具,但没有什么用处。

4

1 回答 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 回答