1
我试图运行快速的adb shell命令。基本上,我想启动adb shell,然后连续运行一堆命令。我能否以某种方式重用流程?我想要启动adb shell并在运行时更改命令文本。在C#控制台应用程序中快速运行ADB Shell命令
问题是,为每个命令创建一个单独的进程加快了很多进程,并最终adb在我身上。
static void Main(string[] args)
{
const string AdbBroadcast = "shell am broadcast <my_cmd>";
int broacastIndex = 0;
while(true)
{
Console.WriteLine("Outputting " + broacastIndex);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "adb";
startInfo.Arguments = AdbBroadcast;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
Thread.Sleep(250);
broacastIndex++;
}
}
我不知道这是否会与您的特定错误帮助,但是你应该调用。当你完成它时(在'WaitForExit'之后),对你的进程进行处理。如果这个循环有很多迭代,你可能会在操作系统级别用完处理句柄。处理过程应该释放句柄,以便可以重复使用。 –