Конечно, возможно разработать на машине Windows, на самом деле, мое первое приложение было исключительно разработано на старой Dell Precision I, имел в то время:)
существует три маршрута;
первый маршрут требует изменения (или использование предварительно измененного) изображение 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
Совершенно верно! Просто вызовите Прочитать (...)
в потоке. Это будет заблокировано, пока данные не станут доступны. Если у вас действительно нет для прямого использования TcpClient
, я бы обычно делал как можно больше в потоке. Если вы хотите использовать сокет, просто вызовите Receive (byte [])
, который будет блокироваться до тех пор, пока данные не станут доступными (или сокет не будет закрыт).
Теперь, если вы не хотите блокировать, вы можете использовать Stream.BeginRead
или Socket.BeginReceive
для работы в асинхронном режиме. (Или ReadAsync
в .NET 4.5.)
Я лично считаю, что Available
практически бесполезен (как для потоков, так и для сокетов), а цикл с засыпанием определенно неэффективен - ты не