我正在开发一个执行以下操作的工具:
- 从存储库下载 zip 文件
- 解压缩 zip 文件。
- 从提取的内容中运行 5-6 个 exe/bat 文件作为单独的
Process
.
我需要显示一个进度条,其中包含这些操作的大致完成百分比。最好的方法是什么?
我正在开发一个执行以下操作的工具:
Process
.我需要显示一个进度条,其中包含这些操作的大致完成百分比。最好的方法是什么?
你用什么来实现每一点?哪些图书馆?
如果你使用一些外部的编译库,你可以捕获输出并解析它:
var proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "program.exe",
Arguments = "command line arguments to your executable",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
并开始这个过程:
proc.Start();
while (!proc.StandardOutput.EndOfStream) {
string line = proc.StandardOutput.ReadLine();
// parse your output
}
bytes_already_downloaded/bytes_total * 100 = download_progress_in_%
如果你使用一些类(你有源代码),你可以创建一个回调动作:
public void DoSomethingMethod(Action<int> progressCallback)
{
while(true)
{
// do something here
// return the progress
int progress = stuff_done / stuff_total * 100;
progressCallback(progress);
}
}
以及如何使用它?
MyClass.DoSomethingMethod(delegate(int i) { progressBar.Progress = i; });
要不就:
MyClass.DoSomethingMethod(i => progressBar.Progress = i);
如果你的意思是别的,你可以在评论中指定它。我会尽力回答:)