|
Поток и ProgressBar
|
|||
---|---|---|---|
#18+
На форме есть прогресс-бар и надпись. При появлении формы я запускаю отдельный поток, в котором идет копирование файлов. Из этого потока через делегата я меняю значения прогресс-бара и надписи. По окончании копирования форму надо закрыть (в примере я меняю цвет формы). Почему так получается, что прогресс-бар до конца не заполнился, а цвет формы уже сменился (то есть основной поток был проинформирован об окончании вспомогательного потока, хотя визуально это не так)? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 00:05 |
|
Поток и ProgressBar
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, Как вы вычисляете новое значение? Вообще, какая-то каша-малаша. Если у Вас цикл до 100, то и совпадение будет только при копировании 100 файлов. Значит Вам нужно изменять ProgressBar1.Maximum и делать его равным числу файлов, Либо после копирования файла вычислять новое значение Бара вручную по формуле: (файлов_скопировано / всего_файлов * 100) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 05:54 |
|
Поток и ProgressBar
|
|||
---|---|---|---|
#18+
Да, максимум для бара = кол-во файлов, здесь код приведен без этого для простоты. По умолчанию максимум у бара = 100, вот и цикл с якобы копированием до 100. В реальном приложении у меня определяется кол-во файлов, но эффект то же: например файлов 250, на 245 идет оповещение, что мол все скопировано, форму можно закрывать, хотя прогресс-бар до 100% не дошел... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 09:04 |
|
Поток и ProgressBar
|
|||
---|---|---|---|
#18+
Вернее все файлы будут скопированы физически, а вот визуально кажется, что прогресс-бар до 100% не дошел, а уже надо закрывать форму (в примере - менять фон)... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 10:13 |
|
Поток и ProgressBar
|
|||
---|---|---|---|
#18+
ок, а "вылетов" при ошибке копирования в CopyMy у Вас не приключается? это могло бы объяснить отставание счетчика ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2013, 10:46 |
|
|
start [/forum/topic.php?fid=20&msg=38397403&tid=1404040]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 180ms |
0 / 0 |