Индикатор выполнения управляет меньшим количеством времени, чем определенный

Я создал функцию, которая получает количество миллисекунд и затем управляет индикатором выполнения, но результат состоит в том, что индикатор выполнения управляет меньшим количеством времени, чем определенный.

this.timerProgress.Tick += new System.EventHandler(this.timerProgress_Tick);

public void AnimateProgBar(int milliSeconds)
{
    if (!timerProgress.Enabled)
    {
        this.Invoke((MethodInvoker)delegate { pbStatus.Value = 0; });
        timerProgress.Interval = milliSeconds/100;
        timerProgress.Enabled = true;
    }
}

private void timerProgress_Tick(object sender, EventArgs e)
{
    if (pbStatus.Value < 100)
    {
        pbStatus.Value += 1;
        pbStatus.Refresh();
    }
    else
    {
        timerProgress.Enabled = false;
    }
}
0
nl ja de
Таймер интервал в миллисекундах.. you' ре, делящее его на 100. Например, запрос AnimateProgBar (1000) приведет к 1000 / 100 , который равняется 10.. you' ре, устанавливающее интервал в 10 мс..
добавлено автор Simon Whitehead, источник

2 ответы

используя AnimateProgBar (100), закончит тем, что создал Интервал 1 миллисекунды.

timerProgress. Интервал = миллисекунды;//не делятся на 100

this.timerProgress.Tick += new System.EventHandler(this.timerProgress_Tick);

public void AnimateProgBar(int milliSeconds)
{
    if (!timerProgress.Enabled)
    {
        this.Invoke((MethodInvoker)delegate { pbStatus.Value = 0; });
        timerProgress.Interval = milliSeconds; //do not divide by 100
        timerProgress.Enabled = true;
    }
}

private void timerProgress_Tick(object sender, EventArgs e)
{
    if (pbStatus.Value < 100)
    {
        pbStatus.Value += 1;
        pbStatus.Refresh();
    }
    else
    {
        timerProgress.Enabled = false;
    }
}
0
добавлено
в том, сколько времени вы хотите показать его 100%?
добавлено автор PaRiMaL RaJ, источник
теперь индикатор выполнения должен замедлиться
добавлено автор user1269592, источник

Требование AnimateProgBar (1000) приведет к следующему вычислению: 1000/100 . Это равняется 10 .

Таймер интервал уже находится в миллисекундах. Таким образом, вы эффективно устанавливаете интервал в 10 ms .

0
добавлено
Насколько я понимаю, что OP пытается установить целое время выполнения для таймера и сделать 100 клещей в этом отрезке времени.
добавлено автор default locale, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot