在 Java 中我可以扩展Thread
或实现Runnable
,C# 中的等价物是什么?我发现只有一些看起来有点像可运行的工具,但没有什么用处。
问问题
171 次
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 回答