【发布时间】:2017-07-30 02:16:00
【问题描述】:
Thread t = new Thread(new ThreadStart(Program1.ThreadMethod));
我想知道为什么我们在构造函数中写new ThreadStart(Program1.ThreadMethod)。
请解释一下。
【问题讨论】:
-
解释什么?你真正需要什么帮助?您必须将
ThreadStart实例传递给构造函数,因此它当然必须来自某个地方。一种方法是使用new ThreadStart(...)显式创建它。 具体来说你有什么不明白的? -
什么是实例变量以及为什么我们将它传递给构造函数?
-
“什么是实例变量,为什么我们将它传递给构造函数?” -- 没有传递变量值,只是一个新创建的实例。至于为什么,嗯...因为它是必需的。没有它,
Thread对象将不知道使用什么方法作为Thread对象所代表的线程的顶级入口点。 -
你能告诉我它是哪个类实例吗,因为它不像类 obj 它只是一个新类,所以你能解释一下它的 ThreadStart obj = new ThreadStart 吗???/跨度>
-
“它的 ThreadStart obj = new ThreadStart 在哪里”——没必要。您可以声明一个变量
obj,并以这种方式分配它,然后将obj传递给Thread()构造函数。但是不要求表达式的值在传递之前存储在变量中。相反,您可以像这里的示例一样,直接使用表达式作为构造函数参数。然后在调用方法时直接将值赋给构造函数参数。
标签: c# constructor delegates