首页 > 解决方案 > 我需要使用 DLL C# 中的时间运行进度条

问题描述

看来我需要在单独的线程中使用计时器,因为如果我使用正常时间,则时间不起作用。所以我做了以下事情,但是当它在 Invoke 语句处停止时,进度条不会改变值!

public partial class LoadingForm : Form
{
    System.Threading.Timer t;

    public LoadingForm()
    {
        InitializeComponent();
    }

    private void LoadingForm_Load(object sender, EventArgs e)
    {
        progressBar.Value = 0;
        progressBar.Minimum = 0;
        progressBar.Maximum = 100;

        t = new System.Threading.Timer(TimerCallback, null, 0, 500);
    }

    private void TimerCallback(object e)
    {
        //time is here
        progressBar.Invoke(new Action(() => progressBar.Value++));
    }

    private void timerTick()
    {
        //this is what i need to do !!!!
        if (progressBar.Value == progressBar.Maximum) { progressBar.Value = 0; }
        progressBar.Value++;
    }
}

(如果效果理想,我希望能够在 Invoke 语句中调用 timerTick())

标签: c#dlltimerprogress-barinvoke

解决方案


推荐阅读