Ответ 1
Да, условные точки останова медленны.
В качестве альтернативы вы можете использовать Debug.Assert:
Debug.Assert( i != x );
Это приведет к тому, что assert будет срабатывать при i == x
, и вы сможете отлаживать оттуда.
Я пытаюсь отлаживать программу в VS2010, используя точку останова с булевым условием. Эта конкретная точка останова очень медленная, поэтому моя программа работает в сотни раз медленнее, чем без условия, или с помощью обычной безусловной точки останова.
Мой вопрос: это распространенная проблема с визуальной студией, я не могу поверить, что отладчик может быть таким медленным? Булево выражение очень просто, оно просто говорит, что разбить программу, когда я == x внутри цикла for.
Любая помощь оценивается, поскольку она делает отладку очень болезненной.
Спасибо Ричард
public static RawNetCalculationResults newCATXLNets(IList<Loss> RawLosses, IList<ReinsuranceProgramme> Programme) //Loss contains the properties Year, EventID, Loss Value
{
List<Recoveries> NetRawLosses = new List<Recoveries>(RawLosses.Count * Programme.Count); //Initiate list with required capacity
//Loop over each element in RawLosses List and do some calculations
foreach (var e in RawLosses)
{ //<----BREAK POINT HERE (e.Year == x)
foreach (var layer in Programme.Where(x => x.Type == ReinsuranceType.CATXL))
{
Да, условные точки останова медленны.
В качестве альтернативы вы можете использовать Debug.Assert:
Debug.Assert( i != x );
Это приведет к тому, что assert будет срабатывать при i == x
, и вы сможете отлаживать оттуда.