Больше не могу отлаживать мое приложение Monotouch, и оно случайным образом зависает

Я пытаюсь отладить свое приложение, и с того момента, как я запускаю его на iPad, оно будет убито по тайм-ауту, прежде чем оно когда-либо достигнет FinishedLaunching() (у меня там есть точка останова)! Вот что я вижу на панели вывода. Все это занимает почти 20 с. Если я запускаю приложение в сборке RELEASE, оно случайным образом зависает. Я нажимаю кнопку, и делегата вызывают через полминуты. Что здесь происходит? В Симуляторе все нормально.

Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/Mono.Security.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/monotouch.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.Xml.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.Data.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.Transactions.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/Mono.Data.Sqlite.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.Web.Services.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/System.Core.dll [External]
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/iMy.dll
Loaded assembly: /private/var/mobile/Applications/C3E70D7B-8C10-49CD-98A7-FCE857899BAA/MyBrowser.app/MyBrowser.exe
Thread started: 
Resolved pending breakpoint at 'AppDelegateIPad.cs:110' to Boolean MyBrowser.AppDelegateIPad:FinishedLaunching ():0.

person Krumelur    schedule 22.02.2011    source источник


Ответы (1)


Избегайте установки точек останова в FinishedLaunching. При компиляции в режиме отладки код всегда работает медленнее. На симуляторе это работает, потому что: а. Между «устройством» и MonoDevelop нет соединения Wi-Fi b. «Устройство» — это ваш компьютер, поэтому все работает быстрее, чем на реальном устройстве.

Если он случайно зависает в режиме Release, я думаю, что в FinishedLaunching происходит много чего, чего не следует делать.

person Dimitris Tavlikos    schedule 22.02.2011
comment
Зависает не в FinishedLaunching, а в разных местах. Отладка действительно является ошибкой WiFi. Дома работает нормально, на работе нет. Может быть, это какая-то настройка брандмауэра или что-то еще на моем рабочем Mac, которого нет на моем ноутбуке? Брейкпин в FinishedLaunching я установил только для того, чтобы доказать, что он никогда даже не доберется туда, и это будет первый шанс сломаться. - person Krumelur; 22.02.2011
comment
Да, брандмауэр, блокирующий входящие порты, будет проблемой. Убедитесь, что порты, которые прослушивает MonoDevelop, открыты. - person Dimitris Tavlikos; 22.02.2011
comment
Но тогда это сработает - или нет. Но не медленно... Я думаю, что это действительно моя связь на работе, так как дома у меня нет проблем. - person Krumelur; 23.02.2011