我正在开发一个执行以下操作的工具:
Process
运行。我需要显示一个进度条,其中包含这些操作的大致完成百分比。最好的方法是什么?
答案 0 :(得分:4)
你用什么来实现每一点?哪个图书馆?
如果使用一些外部编译库,则可以捕获输出并解析它:
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);
如果您的意思是其他内容,可以在评论中指定。我会尽力回答:)