C# 非主线程更新主线程界面的问题?
问题描述:
假设:UI线程上有一个lable一个,TextBox一个
现在从一个非UI线程调用BegionInvoke后传递一个string类型参数更新Lable,
然后又从另一个非UI线程调用BegiobInvoke后传递一个string类型和int类型参数更新TextBox,
委托就可以用一个如:
(1) private delegate void UpdateUiHandler(string xx);
(2) private delegate void UpdateUiHandlerA(int xx,int y);
--private delegate void UpdateUiHandler(params object[] pars);
是不是我必需就要写三个相对应的方法来更新UI,还是可以将(1),(2)合起来(怎么合?)再将分别的方法合起来(又怎么合)?
如:
private delegate void UpdateUiHandler(string xx); private delegate void UpdateUiHandlerA(string xx, int yy); private void haha() { this.BeginInvoke(new UpdateUiHandler(xx), new object[] { "xx" }); } private void hahaha() { this.BeginInvoke(new UpdateUiHandlerA(yy), new object[] { "xx", 123 }); } private void xx(string xx) { label1.Text = xx; } private void yy(string xx, int yy) { textBox1.Text = xx; Process.Value = yy; }