C# Concurrency. Асинхронное программирование и многопоточность
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  C# Concurrency. Асинхронное программирование и многопоточность

Хэлен
Хэлендәйексөз келтірді33 минут бұрын
инструкция await ничего не ждет — она фактически завершает выполнение текущей части и возвращает управление вызывающему коду.
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді33 минут бұрын
Добавление ключевого слова async в объявление метода не делает его асинхронным. Это просто флаг, сообщающий компилятору, что тот должен отыскать в методе ключевые слова await и разделить его на части
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді33 минут бұрын
И если в коде встретится вызов async-метода без await, то он будет выполнен так, будто и не был объявлен асинхронным (хотя возвращаемое значение все равно будет обернуто в Task)
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді33 минут бұрын
Ключевое слово await сообщает компилятору, что код в этой точке необходимо приостановить и возобновить, когда завершится асинхронная операция
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді33 минут бұрын
объекты Task или Task<T> представляют событие или значение соответственно, которые могут произойти или стать доступными в будущем
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді33 минут бұрын
Инструкции async/await позволяют создавать код, описывающий логический поток, а компилятор преобразует его в код, способный выполняться асинхронно
Комментарий жазу
Илья Ж.
Илья Ж.дәйексөз келтірді14 сағат бұрын
Операции, которые могут привести к блокировке потока, называются блокирующими. Таковыми являются все операции доступа к файлам и сети. Блокирующими также являются все операции, взаимодействующие с чем-либо еще, кроме процессора и памяти, и все операции, ожидающие наступления некоторого события в другом потоке.
Комментарий жазу
Илья Ж.
Илья Ж.дәйексөз келтірді14 сағат бұрын
в другой программе), и операционная система не будет выделять потоку процессорное время, пока он находится в заблокированном состоянии. Когда система закончит читать файл, она выведет поток из заблокированного состояния и тот снова сможет получать свои кванты процессорного времени.
Комментарий жазу
Илья Ж.
Илья Ж.дәйексөз келтірді14 сағат бұрын
Например, когда код читает файл, поток не может продолжить работу, пока данные не извлечены из файла на диске. До этого момента мы говорим, что поток заблокирован. Выделение процессорного времени заблокированному потоку, очевидно, было бы расточительством, поэтому, когда поток начинает читать файл, операционная система переводит его в заблокированное состояние. Войдя в это состояние, поток немедленно освобождает процессор, чтобы им мог воспользоваться другой поток (возможно,
Комментарий жазу
Илья Ж.
Илья Ж.дәйексөз келтірді14 сағат бұрын
Внутри процессора есть таймер, который сигнализирует, когда он должен переключиться на следующий поток, и при каждом переключении процессор сохраняет информацию о том, что он делал, и загружает состояние другого потока (это называется переключением контекста).
Комментарий жазу