.NET Async Sockets: любое преимущество SocketAsyncEventArgs над Begin/End в этом сценарии?

Socket имеет эти новые асинхронные методы, начиная с .NET 3,5 , для использования с SocketAsyncEventArgs (например, Socket.SendAsync () ), преимущества которых заключаются в том, что они используют порты завершения ввода-вывода и избегают необходимости постоянно выделять ресурсы.

Мы создали класс под названием UdpStream с простым интерфейсом - просто StartSend и событием Completed . Он выделяет два SocketAsyncEventArgs: один для отправки и один для получения. StartSend просто отправляет сообщение с помощью SendAsync и вызывается около 10 раз в секунду. Мы используем событие Completed в получателе SocketAsyncEventArgs, и после обработки каждого события мы все принимаем Async так, что он формирует цикл получения. Опять же, мы получаем примерно 10 раз в секунду.

Наша система должна поддерживать до 500 этих объектов UdpStream . Другими словами, наш сервер будет взаимодействовать одновременно с 500 различными оконечными IP-устройствами.

Я замечаю в примерах MSDN SocketAsyncEventArgs, что они выделяют N x SocketAsyncEventArgs, по одному для каждой незавершенной операции получения, которую необходимо обработать одновременно. Мне непонятно, как именно это связано с нашим сценарием - мне кажется, что, возможно, мы не получаем выгоду от SocketAsyncEventArgs, потому что мы просто выделяем по одному на конечную точку. Если мы получим 500 SocketAsyncEventArgs, я предполагаю, что мы не получим никакой выгоды. Возможно, мы все еще получаем некоторые преимущества от портов завершения ввода-вывода?

  • Правильно ли эта конструкция использует SocketAsyncEventArgs, когда Масштабирование до 500?

  • Для случая, когда используется один «UdpStream», любое преимущество использования SocketAsyncEventArgs против использования старого API Begin/End?

-121--1746111-

Полоса прокрутки в стиле iPhone в веб-приложении с автоматическим замиранием в/из Я делаю веб-приложение и действительно люблю полосы прокрутки в стиле iPhone, которые автоматически замирают и вымирают Я видел его только на iOS продуктах, но теперь кажется, что Facebook внедрил его в...

Я создаю веб-приложение и очень люблю полосы прокрутки в стиле iPhone, которые автоматически исчезают. Я видел его только на iOS-продуктах, но теперь кажется, что Facebook внедрил его в список контактов чат.

Почему мне это так нравится? Он автоматически замирает и вымирает, таким образом, он менее неприятен и может сэкономить значительные объемы пространства. Когда он на дисплее, он эффективно внутри погружения, а не вокруг него, снова эффективно используя пространство.

Есть идеи, как это сделать? Это не «iScroll» Маттео Спинелли, который принимает «нормальную» полосу прокрутки (которая для iOS продуктов, конечно, iOS-стиль) для использования на divs.

Я пытался использовать Jonathan Azoff's Overscroll Jquery плагин, но я не могу показаться, что это сделать его работать точно правильно. Мне удалось заставить полосы прокрутки замирать и выходить автоматически на mouseenter (как это делает Facebook), но поведение прокрутки различается между браузерами (и, похоже, переопределяет поведение прокрутки браузера как по скорости, так и по инерции на OSX). Быстрый взгляд на исходный код, кажется, согласуется с этим выводом.

Есть ли там какие-либо другие плагины/библиотеки, которые я могу использовать, чтобы поддерживать именно поведение прокрутки браузера, но имеют полосы прокрутки, которые исчезают автоматически и выглядят в стиле iOS?

EDIT : Решил сделать это сам. См. ответ ниже.

7
задан achow 17 November 2011 в 06:09
поделиться