在winform中有一个进度条来显示c#文件加密所花费的时间

本文关键字:加密 文件 时间 显示 有一个 winform | 更新日期: 2023-09-27 18:06:31

目前我的应用程序正在对文件和文件夹进行加密,我试图有一个进度条,使应用程序有一个更好的界面,也知道加密需要多长时间

然而,这是我第一次使用进度条,我有点混淆了所有提到的术语,如后台工作者,步骤,最大等,我想知道有人知道如何创建和设置一个简单版本的进度条。提前谢谢。

在看到剑鱼的建议并尝试之后,这里是我的代码

这是我的代码的一部分,基于所提供的链接,我尝试了它在我使用部分代码到按钮

的部分
      public LockPasswordBox(IFile[] info)
    {
        InitializeComponent();
        ifile = info;
    // To report progress from the background worker we need to set this property
    backgroundWorker1.WorkerReportsProgress = true;
    // This event will be raised on the worker thread when the worker starts
    backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
    // This event will be raised when we call ReportProgress
    backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
}

// On worker thread so do our thing!
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    // Your background task goes here
    for (int i = 0; i <= 100; i++)
    {
        // Report progress to 'UI' thread
        backgroundWorker1.ReportProgress(i);
        // Simulate long task
        System.Threading.Thread.Sleep(100);
    }
}
// Back on the 'UI' thread so we can update the progress bar
void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    // The progress percentage is a property of e
    progressBar1.Value = e.ProgressPercentage;
}

按钮代码
    private void lockButton_Click(object sender, EventArgs e)
    {
        // Start the background worker
    backgroundWorker1.RunWorkerAsync();

问题是我按下按钮后…它只是直接弹出消息框加密成功。

在winform中有一个进度条来显示c#文件加密所花费的时间

如果您有Minimun = 1, Maximum = 100Step = 1,则需要调用PerformStep() 99次才能完成进度条

如果你不能从lControl.Encrypt(details)获得关于操作进行了多远的准确信息,你就不知道何时更新进度条上的所有步骤。

MSDN文档中有一个关于如何移动进度条的简单示例

我也有类似的需求,这对我的任务很有帮助。希望对你也有帮助。

http://www.codeproject.com/Tips/83317/BackgroundWorker-and-ProgressBar-demo

它非常简单,实际上你所要做的就是使用不那么神秘的reportprogress方法从后台worker报告进度,并且有一个方法在报告进度时更新进度条。

试着用这种方式实现它,如果你遇到了障碍,请发布你的代码。