powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / В чем разница между await и yield ?
23 сообщений из 23, страница 1 из 1
В чем разница между await и yield ?
    #38784914
Tsarapke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно сабж. Столкнулся с данным вопросом и возник встречный. Не является ли данный вопрос типом "какая разница между зеленым и квадратным"? Если нет, то какая разница?
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38784929
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsarapkeНе является ли данный вопрос типом "какая разница между зеленым и квадратным"?
Именно так. Ключевое слово yield предназначено для возврата результатов отложенного запроса, оператор await - для управления потоками.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38784934
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всё же, сходство есть. Оба они преобразуют циклы в конечный автомат.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38784963
Tsarapke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ilya81, Алексей К

Спасибо, добрые люди.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38784980
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81оператор await - для управления потоками.
С дуба рухнул?
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785016
Tsarapke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Можно узнать ваше объяснение, пожалуйста?
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785123
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsarapkeМСУ,

Можно узнать ваше объяснение, пожалуйста?А чем объяснение производителя не подходит?

The await operator is applied to a task in an asynchronous method to suspend the execution of the method until the awaited task completes. Это оператор ожидания окончания асинхронной операции .
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785128
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭто оператор ожидания окончания асинхронной операции .

Не совсем верное утверждение. Это не ожидание окончания операции
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785142
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsarapkeМСУ, Можно узнать ваше объяснение, пожалуйста?
http://msdn.microsoft.com/ru-ru/library/hh156528.aspx Оператор await применяется к задаче в асинхронных методах, для того, чтобы приостановить выполнение метода до тех пор, пока ожидаемая задача не завершится. Задача представляет собой работу, выполняющуюся в настоящее время.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785176
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУTsarapkeМСУ, Можно узнать ваше объяснение, пожалуйста?
http://msdn.microsoft.com/ru-ru/library/hh156528.aspx Оператор await применяется к задаче в асинхронных методах, для того, чтобы приостановить выполнение метода до тех пор, пока ожидаемая задача не завершится. Задача представляет собой работу, выполняющуюся в настоящее время.
Шикарный результат автоматического перевода! Если б я из такого описания узнал впервые, ничего б не понял. Хотя, по мне, в двух словах всё равно смысл оператора await не объяснить, есть целые статьи, где прояснён смысл следующего:
Код: 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.
public async void SomeMethodAsync()
{
  try
  {
    await SomeOtherMethodAsync();//это сработает
  }
  catch
  {
     //обработка
  }
}


public async Task SomeOtherMethodAsync()
{
  //какие-то действия
}

public void SomeMethod()
{
  try
  {
    SomeMethodAsync();//а это бесполезная конструкция, это не сработает
  }
  catch
  {
     //обработка
  }
}


и то, там скорее краткое введение.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785208
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAntonariyЭто оператор ожидания окончания асинхронной операции .

Не совсем верное утверждение. Это не ожидание окончания операции авторприостановить выполнение метода до тех пор, пока ожидаемая задача не завершитсяЕсли я заменю слово "операция" на "задача" будет совсем верно?
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785235
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsarapke,
автор В чем разница между await и yield
первый может в лябдах, второй не может.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785275
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Шикарный результат автоматического перевода!
Что смущает в переводе? Всегда есть возможность открыть оригинал.

Ilya81Если б я из такого описания узнал впервые, ничего б не понял.
Ну так а это чьи проблемы?

Ilya81Хотя, по мне, в двух словах всё равно смысл оператора await не объяснить
Ну тогда не спрашивай. Возьми гугл, найди примеры и тренируйся.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785320
Tsarapke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиTsarapke,
автор В чем разница между await и yield
первый может в лябдах, второй не может.

Почитав глубже про yield и await, заметил это. Спасибо.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785357
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyhVosttпропущено...


Не совсем верное утверждение. Это не ожидание окончания операции авторприостановить выполнение метода до тех пор, пока ожидаемая задача не завершитсяЕсли я заменю слово "операция" на "задача" будет совсем верно?

Нет. Встретив await, поток может переключиться на другую задачу. Когда задача завершится, выполнение метода продолжится с того места, где было остановлено. И не факт, что продолжать выполнение метода будет тот же поток, который его начал. А для ожидания у Task есть соответствующие методы.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785372
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНет. Встретив await, поток может переключиться на другую задачу. Когда задача завершится, выполнение метода продолжится с того места, где было остановлено. И не факт, что продолжать выполнение метода будет тот же поток, который его начал. А для ожидания у Task есть соответствующие методы.
Если я не ошибаюсь, то при существовании текущего SynchronizationContext выполнение вернётся в исходный поток, если ж его у текущего потока нет, то (для метода async void) выполнение продолжится в начатом для async-функции потоке.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785458
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Если я не ошибаюсь, то при существовании текущего SynchronizationContext выполнение вернётся в исходный поток, если ж его у текущего потока нет, то (для метода async void) выполнение продолжится в начатом для async-функции потоке.
Вот тут я проводил исследования на эту тему. Причем на sql.ru тоже это обсуждалось

http://codearticles.ru/articles/2135 Другие контексты планирования являются многопоточными; в частности, стандартный пул потоков представлен одним контекстом планирования. Когда в нем планируется новая работа, она может быть выполнена в любом потоке из пула. Таким образом, асинхронный метод, начавший работать в пуле потоков, там же ее и продолжит, хотя при этом не исключена его «переброска» между разными потоками.
На практике единой концепции для контекста планирования нет. Грубо говоря, SynchronizationContext потока действует как его контекст планирования. Поэтому, если у потока есть один из SynchronizationContext (существующая концепция, которая может быть реализована пользователем), он и будет использоваться. А если нет, тогда применяется TaskScheduler потока (аналогичная концепция, введенная TPL). Если у него нет ни того, ни другого, будет задействован TaskScheduler по умолчанию — он планирует возобновления в стандартном пуле потоков.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785530
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё правильно написано. Можно ещё уточнить подробнее об используемом конечном автомате (в который оператор await преобразуется на промежуточном языке) и подробнее описать разницу между async void и async Task.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785558
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно переложился топик в эксгибиционизм , надотобыло написать в чем разница ( в написании, в произношении, в переводе, в применении) и все.., а что сие значит вродениктонеспрашивал
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785602
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Всё правильно написано.
Правда? Спасибо огромное

Ilya81Можно ещё уточнить подробнее об используемом конечном автомате (в который оператор await преобразуется на промежуточном языке) и подробнее описать разницу между async void и async Task.
Это синтаксический сахар над IAsyncResult. Почти. Тут всё предельно ясно разжевано http://msdn.microsoft.com/ru-ru/magazine/hh456402.aspx
Да и не важно, вот что оно будет преобразовано, бери и юзай.
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785674
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Всё правильно написано. Можно ещё уточнить подробнее об используемом конечном автомате (в который оператор await преобразуется на промежуточном языке).Посмотреть рефлектором? Тынц .
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785722
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиа что сие значит вродениктонеспрашивал

кагбуто это здесь кого-то хоть раз волновало
...
Рейтинг: 0 / 0
В чем разница между await и yield ?
    #38785863
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
++ :)
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / В чем разница между await и yield ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]