में बहुत धीमी गति से मैं सूची दृश्य नियंत्रण में आइटम जोड़ना चाहता हूं। यह कोड का थोड़ा सा है:सूची में आइटम जोड़ना CV
this.lView.ListViewItemSorter = null;
ListViewItem[] lvitems = new ListViewItem[ListMyObjects.Count];
int index = 0;
foreach (MyObject object in ListMyObjects)
{
ListViewItem item = new ListViewItem();
item.Text = object.Name;
lvitems[index++] = item;
}
this.lView.BeginUpdate();
this.lView.Items.AddRange(lvitems); // Slow in here with debugger
this.lView.EndUpdate();
मैं केवल 1000 आइटम जोड़ता हूं लेकिन यह बहुत धीमा है। यह खत्म करने के लिए लगभग 15secs खर्च है। किसी को कारण क्यों पता है? अग्रिम धन्यवाद।
संपादित:
मैंने पहले सूचीदृश्य अनुकूलित है।
public partial class MyListView: ListView
{
public MyListView()
{
InitializeComponent();
this.View = View.Details;
this.FullRowSelect = true;
this.DoubleBuffered = true;
}
private bool mCreating;
private bool mReadOnly;
protected override void OnHandleCreated(EventArgs e)
{
mCreating = true;
base.OnHandleCreated(e);
mCreating = false;
}
public bool ReadOnly
{
get { return mReadOnly; }
set { mReadOnly = value; }
}
protected override void OnItemCheck(ItemCheckEventArgs e)
{
if (!mCreating && mReadOnly) e.NewValue = e.CurrentValue;
base.OnItemCheck(e);
}
}
मैं ऐसा इसलिए करता हूं क्योंकि जब मैं एकाधिक थ्रेडिंग का उपयोग करता हूं तो मैं लटकना नहीं चाहता हूं। मुझे नहीं पता कि इससे क्या प्रभावित होता है?
धीमी गति कौन सी रेखा है? (डीबगर का उपयोग करें) – SLaks
मैंने सोचा था ... – SLaks
मैंने इसे पूर्णांक मानों के साथ करने की कोशिश की, और यह स्वीकार्य गति के साथ काम करता है। (<2seconds)। शायद यह आपकी वस्तुओं से संबंधित है? की – Matthias