我知道这个问题已被提出很多问题,但我需要一个答案,以非常实际的方式提出所有问题,最好是代码示例。 我何时应该在C#中使用委托方法? 如何使用它? 我为什么要用它? 它与多线程有什么关系?
感谢任何回答。
答案 0 :(得分:1)
委托基本上是方法指针。它引用了方法及其对象(当然,除非它是静态方法)。
每当需要调用方法时都使用委托,但调用它的代码不知道它是哪种方法。最常见的原因是调用该方法的代码是在该方法之前进行的,例如,像List<T>.Sort(comparison)
这样的库方法。
Delegates不会在不同的线程上调用该方法,它使用委托在与代码相同的线程上调用。当在不同的线程上调用方法时,因为使用委托的代码已经在不同的线程上运行,或者专门为该方法启动新的线程。
答案 1 :(得分:0)
答案 2 :(得分:0)
关于多线程Delegate.BeginInvoke用于在后台线程中调用方法。委托还用于将函数引用传递给其他多线程构造,如ThreadPool后台工作程序等。