Невероятные приключения в коде

Перевод блога Эрика Липперта

Browse by Tags

Tagged Content List
  • Blog Post: Статьи по асинхронности

    Я рад сообщить, что в октябре вышел специальный выпуск журнала MSDN Magazine , посвященный возможностям языков C# и Visual Basic для асинхронной работы: «async-await». Если вас интересует эта тема, то обратите внимание на мою вводную статью для новичков , статью Мэдса Торгерсена, посвященную тому, что...
  • Blog Post: Обновление Async CTP

    Доброе утро всем! Я рад сообщить вам, что команды C# и VB «обновили» async CTP (Community Technology Preview) на конференции MIX11 , которая проходит сегодня, и что оно теперь доступно на сайте Async CTP . Помните, что CTP – это наш ранний взгляд на предложенную возможность языка под названием async...
  • Blog Post: Асинхронность в C#. Часть 8: опять исключения

    (В этом сообщении я буду говорить о внутренних, неприятных, дурных и критических исключениях. Для разъяснения этих терминов, загляните сюда. ) Если в вашем процессе происходит необработанное исключение, то явно произошло что-то плохое и непредвиденное. Если это критическое исключение, то шансов спасти...
  • Blog Post: Асинхронность в C# 5. Часть 7: исключения

    Давайте продолжим с того места, где мы остановились (ха-ха-ха!) после небольшого отступления: обработка исключений в таких «возобновляемых» методах, подобных нашим асинхронным методам, кажется немного странной. Чтобы понять, насколько это странно, вам может понадобиться освежить в памяти мою последнюю...
  • Blog Post: Асинхронность в C# 5. Часть 6: насколько асинхронно?

    Уже несколько людей задали мне вопрос о том, чем руководствовались разработчики языка, требуя, чтобы в объявлении каждого метода, содержащего выражение “await”, присутствовало контекстное ключевое слово “async”. Как и в любом решении, здесь есть свои «за» и «против», которые должны приниматься во внимание...
  • Blog Post: Асинхронность в C# 5. Часть 5: слишком много задач

    Предположим, в городе находится куча отделений банка, в каждом из которых есть куча служащих и один мальчик на побегушках. В городе есть множество клиентов, каждый из которых хочет снять кучу денег из банка в течение дня. Алгоритм следующий: Клиент находит ближайшее отделение и выстаивает в очереди....
  • Blog Post: Асинхронность в C# 5. Часть 4: это не магия

    Сегодня я хочу поговорить об асинхронности, которая никак не связана с многопоточностью. Люди продолжают меня спрашивать: «Ну как возможна асинхронность без многопоточности?» Странный вопрос, поскольку вы наверняка и сами знаете на него ответ. Давайте я задам вопрос по-другому: как возможна многозадачность...
  • Blog Post: Асинхронность в C# 5. Часть 3: Композиция

    Как то в 6:45 утра я шел на остановку к своему автобусу. Прямо на углу 45-й улицы, молодой парень, без футболки, весь в крови промчался мимо меня. За ним гнался другой парень, размахивая бейсбольной битой. Я сразу же подумал: «Боже мой! Нужно немедленно вызвать полицию!» Затем я увидел, что за парнем...
  • Blog Post: Асинхронность в C# 5. Часть 2: Откуда await?

    Сперва я хочу прояснить два момента, поскольку наше исследование простоты использования показало, что это может быть непонятным. Помните код, который я показывал вам в прошлый раз? async void ArchiveDocuments(List<Url> urls) { Task archive = null ; for ( int i = 0; i < urls.Count; ++i)...
  • Blog Post: Асинхронность в C# 5. Часть 1

    Асинхронность в C # 5. Часть 1 Разработчики C# 2.0 поняли, что реализация логики итераторов слишком сложная. Поэтому они добавили блоки итераторов (iterator blocks). Добавили так, чтобы компилятор знал, как создать конечный автомат для хранения продолжения – «что выполнить затем» - где-то в состоянии...
  • Blog Post: Возвращаясь к стилю передачи продолжений. Часть 5: CPS и асинхронность

    Сегодня повествование будет очень долгим и сложным. Но мы как-нибудь справимся. Давайте рассмотрим следующую задачу: у нас есть список адресов URL и мы хотим получить документы, связанные с каждым адресом (давайте пока предположим, что эта операция всегда завершается успешно). Затем, мы хотим скопировать...
  • Blog Post: Возвращаясь к стилю передачи продолжений. Часть 4: выверни себя наизнанку

    Сейчас может возникнуть очевидный вопрос: если CPS является такой классной техникой, то почему бы ею не пользоваться постоянно? Почему большинство профессионалов никогда не слышали об этом, а те, кто слышали, считают, что это нечто безумное, доступное только программистам на Scheme. Прежде всего, большинству...
  • Blog Post: Возвращаясь к стилю передачи продолжений. Часть 3: размышления о сопрограммах

    В прошлый раз я кратко описал, как можно реализовать интересную логику управления, такую как try-catch с помощью продолжений; как мы видели, реализация методов Try и Throw весьма примитивна при наличии CPS. Я уверен, что вы можете расширить эти идеи для реализации try-catch-finally. Другим базовым упражнением...
  • Blog Post: Возвращаясь к стилю передачи продолжений. Часть 2: пассы с логикой управления

    В прошлой серии «Невероятных приключений»: « Следуя по этому пути, мы сможем создавать логику управления произвольной сложности в виде библиотечных методов путем сохранения множества продолжений и определения, которое из них будет выполнено следующим » . Давайте рассмотрим более сложный пример, нежели...
  • Blog Post: Возвращаясь к стилю передачи продолжения. Часть 1

    Здравствуйте, читатели невероятных приключений. Позвольте мне начать тему, которая будет действительно долгой и действительно сложной , но полностью окупится в конце. Также я собираюсь публиковать сообщения в ускоренном режиме, более двух в неделю. Позже станет ясно, почему я так поступаю, добавлю для...
Page 1 of 1 (15 items)