Мне известно об этом другом сообщении , но, похоже, это не относится к моей ситуации.
Прежде всего, вот мое окружение:
Windows XP 64-битный SP3; Visual Studio 2008 с SP; .NET 3.5 SP1; Приложение WPF.
Моя проблема в том, что я не могу шагнуть туда, где происходит мое исключение. Он просто продолжает работать вместо продолжения сеанса отладки.
Вот некоторый код - я не написал все это, поэтому, пожалуйста, не нужно комментировать имена:)
// start up the WPF application
// set the handler for the Checked event
ToggleButton channelButton1 = new ToggleButton();
channelButton1.Checked += (s, e) =>
ThreadPool.QueueUserWorkItem(SetTcpChannel, 1);
Тогда в этом SetTcpChannel
методе:
try
{
int channel = (int)state;
EnsureTcpSocket();
// more logic to do stuff with channel
// that we don't care about for SO
...
}
catch (Exception e)
{
// just for illustration
// this is where I expected the code to return
...
}
И, наконец, в том месте, где на самом деле происходит исключение (внутри EnsureTcpSocket
):
if (_tcp == null)
{
// this is not a valid ip/port since the
// target machine is not running (test condition)
// but that's ok, I should get some exception
// and continue debugging...right?
_tcp = new TcpClient(ip, port);
}
Вот что я делал:
- Я установил точку останова на
EnsureTcpSocket
строка внутри
SetTcpChannel
- F11 (шаг)
EnsureTcpSocket
так что я могу видеть _tcp
кусок
код
- Попробуйте F10 (шаг за шагом)
TcpClient
конструктор
На этом последнем шаге приложение возвращается из отладчика и продолжает работать, и я никогда не вижу исключений.
Есть идеи?