Если у вас нет очень особых требований, я настоятельно предлагаю вам использовать WebClient
сверх WebRequest
. Это будет обрабатывать многое для вас автоматически и будет лучше (в большинстве случаев) по сравнению с управлением памятью.
например. большая часть вашего кода выше может быть заменена на DownloadStringAsync
В противном случае ваш код выглядит нормально. На самом деле я выполнил его в приложении MonoTouch, и он работает без проблем (после замены GetUrl
), и ваш обратный вызов называется .
Однако ваши комментарии, а не код заставляют меня задуматься, если вызов успешен по сети , но не удается по интерфейсу . например,
// Show temp value here.
Асинхронный обратный вызов будет вызываться в другом потоке. UIKit, как и большинство существующих инструментов UI, требует, чтобы все связанные с UI операции выполнялись в основном потоке (UI). Отказ от этого принесет вам много боли.
Вы можете убедиться, что код UI (или другой) выполняется в основном потоке (UI), используя InvokeOnMainThread
. См. статью для более подробной информации.