Мне нужно запустить индикатор выполнения, используя время в DLL C # - PullRequest
0 голосов
/ 26 ноября 2018

Кажется, мне нужно использовать таймер в отдельном потоке, так как время не работает, если я использую обычное время.Поэтому я сделал следующее, однако пока он останавливается в операторе 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++;
    }
}

(если он работает идеально, я бы хотел иметь возможность вызывать timerTick () в Invokeзаявление)

...