[英]Thread using delegate or function name
奇怪的问题。 使用这些代码有什么区别?
class TestThread {
public void waitFunction() {
// Some code like this.UpdateProgress()
}
public void start() {
Thread thWaitingScraper = new Thread(waitFunction); // Method 1
Thread thWaitingScraper = new Thread(delegate() { waitFunction(); }); // Method 2
}
谢谢!
没有功能上的差异,但是在第二种方法中可能导致类型泄漏。
当编译器需要在后台创建隐式类时,会导致Typeleak。 在这种情况下,由于t waitFunction
是waitFunction
的非静态成员,因此编译器需要创建一个类,该类保存this
类的引用,以便可以使用适当的实例来调用该函数。 在该类中,它将创建您在第二种方法中编写的匿名方法,并将其作为Thread
委托参数传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.