Как вы реализуете синхронизацию задач читателя/писателя с помощью C# Async Programming?C#

Место общения программистов C#
Ответить
Anonymous
 Как вы реализуете синхронизацию задач читателя/писателя с помощью C# Async Programming?

Сообщение Anonymous »

Это базовая синхронизация задачи 101, но я не могу найти поисковые термины, которые говорят мне, что мне нужно знать. И я уверен, что здесь это DUP. Если он пуст, он спит/ждет в ожидании ввода. Требуется проверить количество буферов в критическом разделе и спать в том же разделе, чтобы у вас не было условия гонки, когда писатель появляется в некоторых свежих данных между тестом и соном. Мне нужно иметь несколько задач считывателя, и один сигнал от писателя разбудит их все. что мне нужно. Мне нужно что -то, что «разбудит» неизвестное количество читателя (официантов), когда я новый кусок данных. Это не будет сделка с одним выстрелом, будет постоянный поток входящих данных. Если уже появятся новые предметы, API вернется немедленно, но чаще API блокирует (сон) в ожидании входящих данных. Я хочу, чтобы они блокировали, используя ожидание, поэтому большое количество веб -запросов не истощают тренас веб -сервера. Когда появятся новые элементы данных, все эти запросы на ожидание должны «проснуться» и вернуть информацию своим абонентам о новых элементах. О, и ожидание должно пройти время до того, как веб -запрос вышел, просто возвращаясь пустым. Я прочитал статью за статьей об использовании существующих асинхровых интерфейсов и о том, как их вызвать, но я ищу, как реализовать один. И поскольку это кажется гораздо сложнее, чем я ожидал, пример кода или указателей на то же самое будет отличным.

Подробнее здесь: https://stackoverflow.com/questions/796 ... async-prog
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»