Rob*_*ert -3 c# multithreading
在Java中我可以扩展Thread或实现Runnable,C#中的等价物是什么?我发现只有看起来像工具可运行的东西,但没什么用处.
不,你没有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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关代理的更多信息,请参阅有关该主题的文章.
有关线程的更多信息,请参阅Joe Albahari的线程教程.
说实话,这些天你通常应该使用System.Threading.Tasks.Task- 尝试使用更高级别的抽象而不仅仅是原始线程.