2

我在 SO 中找不到这个问题的直接答案。是否有带void (void)签名的预定义委托?

4

3 回答 3

3

Action具有您正在寻找的签名。但是,它与 Runnable 的含义不同:Runnable 通常表示 run() 方法旨在在线程上运行,而 Action 没有任何指示。为此,您需要ThreadStart,它具有相同的签名,并且确实做出了指示。

如果您只需要一个没有参数的委托,Action那就是您想要的。如果您正在处理线程并且需要指示启动方法,请使用ThreadStart.

于 2011-08-16T13:14:21.863 回答
1

没有。C# 处理线程的方式与 Java 不同。在 Java 中,Runnable 接口是子类化 Thread 的替代方法,但您仍然必须创建一个新的 Thread 对象,将 Runnable 传递给构造函数。

无需子类化Thread该类,您只需创建一个新System.Threading.Thread对象并将其传递给ThreadStart委托(这是您完成工作的函数)。ThreadStart 是完全等同于 Java 的 Runnable 的 C#。

但是,Action委托具有void您所说的参数。

于 2011-08-16T13:14:30.697 回答
1

Action 委托是一个没有参数的 void。

http://msdn.microsoft.com/en-us/library/system.action.aspx

还有其他带有多达 16 个参数的签名。

于 2011-08-16T13:15:36.797 回答