Я написал такой код
public void GitConnectAndFetch()
{
try
{
ProcessStartInfo startInfo = new ProcessStartInfo("git.exe");
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = projectPath;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = "branch -a";
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
string branchname = "";
List<SelectListItem> ddgit = new List<SelectListItem>();
while (process.StandardOutput.Peek() >= 0)
{
branchname = process.StandardOutput.ReadLine().Trim();
if (branchname.Trim().StartsWith("remotes/origin/"))
{
ddgit.Add(new SelectListItem { Text = branchname.ToString().Replace("remotes/origin/",""), Value = branchname.ToString() });
}
}
if (ddgit.Count == 0) ddgit.Add(new SelectListItem() { Text = "", Value = "" });
process.WaitForExit();
ViewBag.Branchlist = ddgit;
}
catch (Exception ex)
{
localLog(ex.Message);
localLog(ex.StackTrace);
}
}
[HttpGet]
public ActionResult Main()
{
GitConnectAndFetch();
return View();
}
И я назвал его снова после сообщения
[HttpPost]
public ActionResult Otomasyon(FormCollection form)
{
GitConnectAndFetch();
return View();
}
Я думаю, что подпроцесс работает медленно, и я вызываю его дваждычтобы заполнить выпадающий список на моей главной странице, как я могу его запустить за один раз, чтобы закрыть.