いくつかの ovf コマンドを作成するプロセスを作成するバックグラウンドワーカーを作成しようとしています。その間に、ctrl+c を送信して操作を中止しようとします。このサイトにも同様の質問がありますが、どれも問題を解決していません。
private void DeployOVF()
{
p = new Process();
ProcessStartInfo pi = new ProcessStartInfo("ovftool.exe", "--machineOutput "+ FileName + " vi://uname:pwd@Ip Address");
pi.UseShellExecute = false;
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = true;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
p.StartInfo = pi;
p.Start();
StreamReader myStreamReader = p.StandardOutput;
string myString;
bool progressStarted = false;
while ((myString = myStreamReader.ReadLine()) != null)
{
//Logic to display the progress
}
p.WaitForExit();
p.Close();
}
ここで ctrl+c を送信して進行を中止します。
private void button1_Click(object sender, EventArgs e)
{
p.StandardInput.Write("\x3");
p.StandardInput.Close();
}