在进行Winform开发时,我们都知道经常会用到异步掉一个方法。我们除了可以新启动一个线程外,还可以通过Delegate.BeginInvoke(或Invoke),来实现方法的异步调用。
但以上两种异步方式调用方法,如果方法中有关于界面的操作,比如改变界面某一个控件的属性值,这时候就会报错(线程间操作无效: 从不是创建控件“label1”的线程访问它。)意思是,控件的属性只有主线程可以更改它的值。 这时我们可以通过 Conctrol.BeginInvoke来实现界面控件的属性值更改。
演示代码:
public Form1() { InitializeComponent(); } //要进行异步的方法 private string MethodName(int num, out int ret) { ret =