在调用外部exe代码中,如果需要修改窗体控件属性,都会报错:
System.InvalidOperationException:线程间操作无效……
解决办法如下:
public Form1()
{
InitializeComponent();
//避免报错:System.InvalidOperationException:“线程间操作无效: 从不是创建控件“button1”的线程访问它。”
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
}
……
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
//调用的程序名
p.StartInfo.FileName = "cmd.exe";
//传入参数
p.StartInfo.Arguments = "/k dir *.txt /s ";
//允许接收停止消息
p.EnableRaisingEvents = true;
//监听结束事件
p.Exited += Exep_Exited;
p.Start();
}
private void Exep_Exited(object sender, EventArgs e)
{
this.button1.Text = "调用完成";
}