C# System.InvalidOperationException:&x27;已在流上启动异步读取操作
我写了一个程序来获取关于android设备的信息 我使用外部过程 创建类apktool: 此代码C# System.InvalidOperationException:&x27;已在流上启动异步读取操作,c#,C#,我写了一个程序来获取关于android设备的信息 我使用外部过程 创建类apktool: 此代码 public partial class Form1 : Form { public static Form1 instance; apktool a2; Procees_adb a1 = new Procees_adb(); List<String> fullFileName; public Form1() { Ini
public partial class Form1 : Form
{
public static Form1 instance;
apktool a2;
Procees_adb a1 = new Procees_adb();
List<String> fullFileName;
public Form1()
{
InitializeComponent();
instance = this;
a2 = new apktool();
}
名称空间梦想工具
{
类apktool
{
if (RCH_OUT.InvokeRequired)
{
RCH_OUT.Invoke(new EventHandler(delegate { RCH_OUT.Text = (a2.output.ToString()); }));
}
else
{
RCH_OUT.Text = (a2.output.ToString());
MessageBox.Show(a2.output.ToString());
}
if(IsDisposed)
{
a2.cmd.Dispose();
}
//cmd.Dispose();
}
a2.RunExternalPing("/c adb shell getprop ro.product.cpu.abi");
}
}
}
以这种代码的形式
public partial class Form1 : Form
{
public static Form1 instance;
apktool a2;
Procees_adb a1 = new Procees_adb();
List<String> fullFileName;
public Form1()
{
InitializeComponent();
instance = this;
a2 = new apktool();
}
私有无效按钮2\u单击(对象发送者,事件参数e)
{
if (RCH_OUT.InvokeRequired)
{
RCH_OUT.Invoke(new EventHandler(delegate { RCH_OUT.Text = (a2.output.ToString()); }));
}
else
{
RCH_OUT.Text = (a2.output.ToString());
MessageBox.Show(a2.output.ToString());
}
if(IsDisposed)
{
a2.cmd.Dispose();
}
//cmd.Dispose();
}
a2.RunExternalPing("/c adb shell getprop ro.product.cpu.abi");
}
}
[当我第一次按下按钮时,我得到了信息,并确认
如果我再按一下
它显示cmd.BeginOutputReadLine()上的错误
System.InvalidOperationException:'流上已启动异步读取操作。'
通过add cmd.CancelOutputRead()解决的第一个问题
到
但现在当第二次按下按钮时,信息重复出现
如图所示
使用wait,因为上一次呼叫似乎还没有结束。我删除它不起作用。您是否检查了msdn:thx我使用cmd.CancelOutputRead();但我现在有问题,当第二次按按钮时,我会编辑我的postnow,重复信息如图中所示