【发布时间】:2017-04-26 14:58:22
【问题描述】:
由于该应用程序的用户通常会转储非常大的数据库,因此我认为在屏幕上显示进度条会很好。问题是我不知道我该怎么做。
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "mysqldump.exe"
Process process = Process.Start(psi);
while (!process.StandardOutput.EndOfStream)
{
(sender as BackgroundWorker).ReportProgress(// insert percentage here));
writer.Write((char)process.StandardOutput.Read());
}
process.WaitForExit();
writer.Close();
process.Close();
这是我的一段代码,我想发送我的百分比报告进度。
我知道 mysqldump 有类似 --show-progress-size 的东西,但它应该显示 shell 内部的进度,并且由于我从我的 WPF 应用程序的代码隐藏运行 mysqldump,我不知道我该怎么做明白了。
【问题讨论】:
-
你正在启动另一个进程,这里显示进度的唯一方法是不带数字显示它(参见this)。可以使用 hacky 方式(类似于防病毒软件的工作方式),例如hooking file copy,但这很复杂。另一种选择是自己编写该实用程序的功能。