При отладке проекта в решении (Visual Studio) приложение случайным образом закрывается - PullRequest
0 голосов
/ 07 февраля 2012

Итак, у меня есть решение (в Visual Studio, 2010) с двумя проектами: ProjectA и ProjectB.ProjectA - это просто тестовое консольное приложение для ProjectB (это библиотека, которую я пишу).Я не уверен, если это имеет значение, но я запускаю два экземпляра приложения при запуске:

if (arg.Length == 0)
{
    Process.Start(new ProcessStartInfo("arcticus", "t"));
}

if (arg.Length == 0)
{
    ConnectingNode();
}
else
{
    ListenNode();
}

Когда я иду, чтобы отследить программу, есть случайные местоположения (и не всегда согласованные) когда я пытаюсь войти (или перешагнуть), приложение просто прекратит отладку и полностью закроется без сообщений.

Другой экземпляр (который я не отлаживаю) приложения падает, показывая ошибку в окне консоли.Возникшая ошибка является просто результатом потери соединения с отлаживаемым экземпляром.

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

Дополнительная информация: библиотека использует асинхронный режим.сокеты, с некоторым использованием потоковых пулов тоже.

1 Ответ

0 голосов
/ 07 февраля 2012

«приложение просто прекратит отладку и полностью закроется без сообщений» -> такое поведение я получаю при доступе к данным, принадлежащим другому потоку, когда «играю» с thread / threadPool / Tasks / TaskFactory. Чтобы решить эту проблему, мне пришлось использовать только потокобезопасные объекты и / или Invoke / BeginInvoke. Я обнаружил, что в некоторых случаях код из процесса «А» считается принадлежащим процессу «В», если это был В, вызвавший, скажем, событие.
Не совсем точно, но надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...