这应该很简单!
我想创建一个匿名的Action<>委托执行GUI更新,我将从其他几个匿名代表(将在不同的线程上运行)调用。
void Test() {
Action<string> invokeDisplay = new Action<string>(delegate(string Element) {
//Do a variety of things to my GUI depending on Element parameter
});
MethodInvoker opLong1 = new MethodInvoker(delegate() {
// Do long task
this.Invoke(invokeDisplay("long1"));
});
MethodInvoker opLong2 = new MethodInvoker(delegate() {
// Do long task
this.Invoke(invokeDisplay("long2"));
});
new Thread(new ThreadStart(opLong1)).Start();
new Thread(new ThreadStart(opLong2)).Start();
}
那么这条线的语法是否正确?
this.Invoke(invokeDisplay("long1"));
答案 0 :(得分:4)
语法为:
Invoke(action, "long1");
委托是第一个参数,您要传递给它的参数如下。
答案 1 :(得分:1)
另一个可用选项:
this.Invoke((Action)(() => invokeDisplay("long1")));