【发布时间】:2011-05-16 02:00:22
【问题描述】:
我想调用一个方法来操作 UI 线程上的控件。我的代码有效,我想优化。我指的是这个resource on MSDN。
根据那里,我们应该这样做
public delegate void myDelegate(int anInteger, string aString);
//...
Label1.Invoke(new myDelegate(myMethod), new Object[] {1, "This is the string"});
这会在每次调用时引入孤立的委托对象(内存泄漏)吗?
当我使用如下委托的静态实例执行此操作,然后在每次调用时使用此实例来调用时:
private static _delegateInstance = new myDelegate(myMethod);
//...
Label1.Invoke(_delegateInstance , new Object[] {1, "This is the string"});
这是线程安全的吗?因为委托实例只创建一次,所以我的性能会稍微好一点吗?
【问题讨论】:
标签: c# winforms multithreading delegates invoke