繁体   English   中英

使用委托或函数名称的线程

[英]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 waitFunctionwaitFunction的非静态成员,因此编译器需要创建一个类,该类保存this类的引用,以便可以使用适当的实例来调用该函数。 在该类中,它将创建您在第二种方法中编写的匿名方法,并将其作为Thread委托参数传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM