|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Метод Animation работает только в отдельном потоке, почему? Объясните, почему не работает в этом коде анимация картинок(теория) Наверное через таймер работать будет, но я спрашиваю именно почему так не работает Вот код: Код: 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. 47. 48. 49. 50.
Модератор: Учимся использовать тэги оформления кода - FAQ Кода с методом Animation в потоке, нет, но он работает в потоке, пожалуйста не придирайтесь Очень жду ответа, пожалуйста поподробнее и без флуда и оскорблений, просто ответе кто знает пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 15:12 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Потому что пока твой код работает в потоке пользовательского интефейса, этот поток занят твоим кодом и никак не может обновлять пользовательский интерфейс. То есть он работает, просто на экране ты не видишь изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 15:39 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.ProПотому что пока твой код работает в потоке пользовательского интефейса, этот поток занят твоим кодом и никак не может обновлять пользовательский интерфейс. То есть он работает, просто на экране ты не видишь изменений. То есть он обрабатывает данный кусок и зациклен на нем?А по таймеру получится или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 15:42 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Получится ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 15:47 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо, я так и думал(про прорисовку(знал или догадывался)), просто спросил(прав ли),по таймеру работает (только что проверил) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 16:33 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Вы можете выполнять сам метод в отдельном потоке, просто необходима синхронизация с основным потоком. То есть можно запустить цикл в отдельном потоке и из цикла вызывать через Invoke() метод обновления картинки. Тогда интерфейс будет всегда доступен и анимация будет срабатывтаь ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 17:48 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Еще можно череp Анимацию WPF можно сделать, как мне кажется. Про анимацию в WF я не знаю, не использовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 17:49 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Roman MejtesВы можете выполнять сам метод в отдельном потоке, просто необходима синхронизация с основным потоком. То есть можно запустить цикл в отдельном потоке и из цикла вызывать через Invoke() метод обновления картинки. Тогда интерфейс будет всегда доступен и анимация будет срабатывтаь Спасибо, про Invoke() я знаю, а вот метод обновления картинки приведите, очень прошу Roman MejtesЕще можно череp Анимацию WPF можно сделать, как мне кажется. Про анимацию в WF я не знаю, не использовал. спасибо, это тоже знаю, но wpf пока не учил ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 18:40 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Аниме Любительа вот метод обновления картинки приведитеТак ты же его сам написал в своем коде. Его только выполнить надо через Invoke ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 18:47 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.ProТак ты же его сам написал в своем коде. Его только выполнить надо через Invoke Invoke.ScreenImage.Image = this.ImageList[index]; подправьте код пожалуйста, просто я не помню Roman Mejtes пусть тоже ответит пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 18:53 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 19:01 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Pro, Приведите пример с отоброжением моей картинки пожалуйста, вы же умеете, пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 19:08 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Pro,Roman Mejtes Приведите пример с отоброжением моей картинки пожалуйста, вы же умеете, пожалуйста или кто-нибудь Прикол, если не писать методом invoke и скомпилировать, все равно работать будет, я проверял на чужом коде, в чем прикол?, что-то же будет(какие то проблеммы), какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 19:48 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
Для анимирования в WF есть соотвествующий контрол, который принимает карту картинок и анимирует её, так же есть контролы с поддержкой GIF. Пример автономный, наличия объектов на форме не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 20:01 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
но делать через таймер будет на много лучше и более адекватно, нужно только учитывать блокировки. Потому как при таком способе, анимания не выстраивается по таймлайну, по факту это пример того, как менять картинки с задержкой в 100 мс :) а не анимация. Для анимации нужен таймлайн, в таймлайне по заданному времени должен срабатывать метод, который будет менять кадр, в заданное время. Тогда скорость анимации можно будет контролировать и видео которое длится 10 сек, будет 10 секунд, а не хз сколько :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 20:04 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Roman Mejtesно делать через таймер будет на много лучше и более адекватно, нужно только учитывать блокировки. Потому как при таком способе, анимания не выстраивается по таймлайну, по факту это пример того, как менять картинки с задержкой в 100 мс :) а не анимация. Для анимации нужен таймлайн, в таймлайне по заданному времени должен срабатывать метод, который будет менять кадр, в заданное время. Тогда скорость анимации можно будет контролировать и видео которое длится 10 сек, будет 10 секунд, а не хз сколько :) спасибо Прикольный вопрос всем, ответе все кто отвечал и хочет ответить пожалуйста: Прикол, если не писать методом invoke и скомпилировать, все равно работать будет, я проверял на чужом коде, в чем прикол?, что-то же будет(какие то проблемы), какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 20:37 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Аниме ЛюбительRoman Mejtesно делать через таймер будет на много лучше и более адекватно, нужно только учитывать блокировки. Потому как при таком способе, анимания не выстраивается по таймлайну, по факту это пример того, как менять картинки с задержкой в 100 мс :) а не анимация. Для анимации нужен таймлайн, в таймлайне по заданному времени должен срабатывать метод, который будет менять кадр, в заданное время. Тогда скорость анимации можно будет контролировать и видео которое длится 10 сек, будет 10 секунд, а не хз сколько :) спасибо Прикольный вопрос всем, ответе все кто отвечал и хочет ответить пожалуйста: Прикол, если не писать методом invoke и скомпилировать, все равно работать будет, я проверял на чужом коде, в чем прикол?, что-то же будет(какие то проблемы), какие? просто сделано через async\await, но это не гарантирует, что контекст выполнения будет поток UI, еще стоит проверку сделать. Свойства Control.InvokeRequired ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 02:38 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Roman MejtesАниме Любительпропущено... спасибо Прикольный вопрос всем, ответе все кто отвечал и хочет ответить пожалуйста: Прикол, если не писать методом invoke и скомпилировать, все равно работать будет, я проверял на чужом коде, в чем прикол?, что-то же будет(какие то проблемы), какие? просто сделано через async\await, но это не гарантирует, что контекст выполнения будет поток UI, еще стоит проверку сделать. Свойства Control.InvokeRequired Спасибо Это я понял, вопрос в том, что-то же будет(какие то проблемы)? без Invoke и.т.д. уже не в теории, а можно увидеть на практиле, какие? Кто нибудь знает точно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 13:32 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Roman Mejtesсделано через async\await, но это не гарантирует, что контекст выполнения будет поток UIПочему не гарантирует, ты же Invoke от формы вызываешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:17 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Pro, про мой прикольный вопрос не забудьте, мне интересно и ваше мнение ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:22 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Pro, если я использую invoke то выполнится в потоке формы, но если это будет происходит в async методе, то это может быть как поток UI, так и поток какой то левый. На сколько я понимаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:31 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Аниме Любительпро мой прикольный вопрос не забудьте, мне интересно и ваше мнение Аниме Любительесли не писать методом invoke и скомпилировать, все равно работать будеткод покажи, а то нет предмета обсуждения ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:37 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.Proкод покажи, а то нет предмета обсуждения код показать не могу, он очень большой, но готовая(скомпилированная) прога работает без invoke, как с invoke без видимой разницы, если вам интересно напишите код сами с invoke и без и убедитесь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 14:52 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Ты же только что очень хотел ответа на свой очень интересный вопрос. Есть несколько десятков способов реализовать это без Invoke. Но если у тебя все работает, что зачем ты вообще создал этот топик? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 15:01 |
|
Анимация картинок работает только в потоке
|
|||
---|---|---|---|
#18+
Shocker.ProТы же только что очень хотел ответа на свой очень интересный вопрос. Есть несколько десятков способов реализовать это без Invoke. Но если у тебя все работает, что зачем ты вообще создал этот топик? Я же написал : "Метод Animation работает только в отдельном потоке, почему?" Это просто теоретический вопрос, интересный вопрос я придумал написать потом Вы писали: Ты же только что очень хотел ответа на свой очень интересный вопрос Я и сейчас хочу ответ на мой интересный вопрос Вопрос в том, что-то же будет(какие то проблемы)? без Invoke и.т.д. уже не в теории, а можно увидеть на практике(к практике не придираться), какие? Ответе конкретно, кто знает Не придирайтесь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 15:21 |
|
|
start [/forum/topic.php?fid=20&msg=39636117&tid=1399398]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 170ms |
0 / 0 |