Приветствую.
Win-форма. На форме ListView и Button. Всё по умолчанию — сгенерируйте их сами, если надумаете попробовать.
Также есть два класса (неважно какие):
public class Class1
{
public string Name { get; set; }
}
и
public class Class2
{
public object Value { get; set; }
}
При нажатии на кнопку в ListView добавляется пара ListViewItem у которых в Tag присвоен класс Class1.
Код формы:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listView1.ListViewItemSorter = new ListComparer();
}
private void button1_Click(object sender, EventArgs e)
{
Class1 class1 = new Class1();
ListViewItem lvi = new ListViewItem {Tag = class1,Text = "1"};
ListViewItem lvi1 = new ListViewItem { Tag = class1, Text = "2"};
listView1.Items.Add(lvi);
listView1.Items.Add(lvi1);
}
}
А вот в коде сортировщика:
class ListComparer : System.Collections.IComparer
{
public int Compare(object x, object y)
{
Class2 oX = (Class2)((ListViewItem)x).Tag;
Class1 oY = (Class1)((ListViewItem)y).Tag;
return 0;
}
}
свойство Tag преобразуем не к Class1, а к Class2.
Компилируем.
1. Запускаем под студии — всё ОК.
2. Запускаем без студии — Exception.
Это лечится?
Здравствуйте, vl690001x, Вы писали:
V>По-моему тоже сталкивался с чем-то подобным, не помню даже в чем суть но что-то похожее — под дебагером некоторые исключения не вылезают явно а просто на этом месте происходит возврат из функции. Кажется я как-то даже нашел этому логичное объяснение (и никакого бага студии насколько я помню тут нет), но щас забыл). Записывать надо!
А вроде да. У меня при работе с потоками, при проходе по строке с эксепшеном, иногда происходит просто выход из функции.
Получается, студия крутит сортировку в отдельном потоке.