|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
Привет. Изучаю async-await. Появилось пара вопросов: 1. Для чего нужен метод Task.Yield ? Вот нагуглил код, зачем там нужен Task.Yeld ? Код: 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.
2. Вот я написал простой код, который не работает. Почему ? Код: 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.
Почему-то код сразу падает в finally, не ожидая завершения задачи. Т.е. кнопка блокируется на долю секунды. Как нужно переписать, чтобы было правильно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 15:17 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:00 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
codearticles.ru, Спасибо ) Я понял. Асинхронные функции не должны делать какую-то работу извне? а только возвращать результат. Хорошо, буду стараться писать так. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:20 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
Awaitercodearticles.ru, Спасибо ) Я понял. Асинхронные функции не должны делать какую-то работу извне? а только возвращать результат. Хорошо, буду стараться писать так. Ну почему же. Я понял твой намек, ты хочешь, чтобы на лету отображались добавленные элементы в ListBox. Тогда нужно немного переписать код. Как видишь, всё зависит от задачи. Живые UI пишутся на раз. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:27 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
codearticles.ru, Спасибо большое !!! Тема очень интересная, и вот изучаю ее с нуля. Поэтому и хочется узнать все возможные стороны :) Чтобы уметь и так и так делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:28 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
вообще, меня очень сильно смущает, что в асинхронных метода нету return :) Очень необычно ) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:29 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
Awaiter Поэтому и хочется узнать все возможные стороны :) Чтобы уметь и так и так делать. Почитай вот этот pdf, всё предельно просто на примерах рассказывается http://codearticles.ru/articles/2491 Awaiterвообще, меня очень сильно смущает, что в асинхронных метода нету return :) Очень необычно ) Как это нету? :) Код: c# 1. 2. 3. 4. 5.
Как-раз ответ на твой вопрос по поводу Task.Yield ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:37 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
Например, в WPF / Silverlight / Modern UI еще проще, там есть свой диспетчер. Можно прям в нем обращаться к контролам. Очень удобно. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 17:41 |
|
Помогите понять async-await
|
|||
---|---|---|---|
#18+
codearticles.ru, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2014, 18:08 |
|
|
start [/forum/topic.php?fid=20&msg=38752994&tid=1402434]: |
0ms |
get settings: |
17ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 470ms |
0 / 0 |