Лучший способ ожидать данных TcpClient для становления доступным?

Конечно, возможно разработать на машине Windows, на самом деле, мое первое приложение было исключительно разработано на старой Dell Precision I, имел в то время:)

существует три маршрута;

  1. Установка OSx86 (иначе iATKOS / Kalyway) на втором разделе/диске и двойной загрузке.
  2. Выполнение Сервер Mac OS X под VMware (Mac OS X 10.7 (Лев) вперед, считайте обновление ниже).
  3. Delphi XE4 Использования и macincloud сервис. Это - коммерческий комплект инструментальных средств, но поддержка компонента и lib растет.

первый маршрут требует изменения (или использование предварительно измененного) изображение Leopard, который может быть установлен на обычном ПК. Это не настолько твердо, как Вы думали бы, хотя Ваше отношение успеха/усилия будет зависеть от того, как тесно аппаратные средства в Ваших соответствиях ПК, что в аппаратных средствах Mac - например, если Вы выполняете Core 2 Duo на Intel Motherboard с видеокартой Nvidia, Вы смеетесь. Если Вы выполняете машину AMD, или что-то без SSE3 она немного больше принимает участие.

, Если Вы покупаете (или уже владеете) версия Leopard тогда это - серая область начиная с Leopard, EULA заявляет, что можно только выполнить его на "Apple Маркированная" машина. Как многие указывают, прикрепляете ли Вы этикетку Apple на свой ПК, Вы, вероятно, застрахованы.

вторая опция является более дорогостоящей. EULA для версии рабочей станции Leopard препятствует тому, чтобы он был выполнен при эмуляции, и в результате нет никакой поддержки в VMware для этого. Сервер Leopard, однако, CAN быть выполненным при эмуляции и может использоваться в настольных целях. Сервер Leopard и VMware являются дорогими, как бы то ни было.

, Если бы Вы интересуетесь опцией 1) я предложил бы запуститься в Insanelymac и считать разделы OSx86.

я действительно думаю, что необходимо рассмотреть, будет ли время, которое Вы инвестируете, стоящим денег, которые Вы сэкономите все же. Это было для меня, потому что я люблю переделывать этот тип материала, и я запустил во время ранних бет iPhone, за месяцы до того, как их App Store стал доступным.

, С другой стороны, Вы могли взять низкую спецификацию Mac, Мини-из eBay. Вам не нужно много лошадиной силы для выполнения SDK, и можно всегда продавать его на позже, если Вы решаете остановить разработку или купить лучший Mac

Обновление: Вы не можете создать Клиентскую виртуальную машину Mac OS X для OS X 10.6 и ранее. Apple не позволяет этим Клиентским Ose быть виртуализированными. С Mac OS X 10.7 (Лев) вперед, Apple изменила свое лицензионное соглашение в отношении виртуализации. Источник: VMWare KnowledgeBase

11
задан Default 9 May 2014 в 13:24
поделиться

1 ответ

Совершенно верно! Просто вызовите Прочитать (...) в потоке. Это будет заблокировано, пока данные не станут доступны. Если у вас действительно нет для прямого использования TcpClient , я бы обычно делал как можно больше в потоке. Если вы хотите использовать сокет, просто вызовите Receive (byte []) , который будет блокироваться до тех пор, пока данные не станут доступными (или сокет не будет закрыт).

Теперь, если вы не хотите блокировать, вы можете использовать Stream.BeginRead или Socket.BeginReceive для работы в асинхронном режиме. (Или ReadAsync в .NET 4.5.)

Я лично считаю, что Available практически бесполезен (как для потоков, так и для сокетов), а цикл с засыпанием определенно неэффективен - ты не

26
ответ дан 3 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: