title: How to update wxTreeListCtrl in real time if the childrens count is more 100000 in wxwidgets
body: <p>I am going to display data in wxTreeListCtrl but i am facing some problems with time , </p>
  
  <p>it is taking much time  , could some please hep me out of this.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>wxTreeListCtrl *m_ptreelistctrl = new wxTreeListCtrl(this, TREELISTCNTRL, pos, size, wxBORDER_NONE|wxTR_HAS_BUTTONS|wxTR_MULTIPLE, validator, name);
  m_ptreelistctrl-&gt;SetHeaderBackgroundcolour(colour);
  //For Displaying Names
  m_ptreelistctrl-&gt;AddColumn(_U("Description") , 400 ,wxALIGN_LEFT /*,DEFAULT_ITEM_WIDTH, wxALIGN_LEFT */);
  
  //For Displaying ID
      m_ptreelistctrl-&gt;AddColumn(_U("Id"), 50/*30*/, wxALIGN_LEFT ,-1 ,false);
  
  //For Displaying Colour
  m_ptreelistctrl-&gt;AddColumn(_U("Colour"), DEFAULT_COL_WIDTH, wxALIGN_LEFT/*CENTER */);
  
  wxStopWatch *time  = new wxStopWatch();
  time-&gt;Start();
  
  custTreeItemData* pcusData = new custTreeItemData(-1, TREEITEM_ROOT);
  root  = m_ptreelistctrl-&gt;AddRoot(m_strRootname, -1,-1,pcusData);
  
  pcusData = new custTreeItemData(-1, TREEITEM_ASSMB);
  item_assmb = m_ptreelistctrl-&gt;AppendItem( root,"Assem", 0, 3, pcusTrData);
  for ( i = 1; i &lt;= 100000; i++ )
      {
          unsigned char r,g,b;
          wxTreeItemId item_assmb_entities;
          custTreeItemData* pcusTrData = new custTreeItemData(i, TREEITEM_ASSMB);
          pcusTrData-&gt;SetDataId(10);
          item_assmb_entities = m_ptreelistctrl-&gt;AppendItem(item_assmb,"srinvas", 0, 3, pcusTrData);
          FillItems(pcusTrData,item_assmb_entities);
          AppendColorImagetoTree( item_assmb_entities, 2, r, g, b );
          AppendIdtoTree(item_assmb_entities ,1 ,10);
          if( true )
          {
              m_ptreelistctrl-&gt;SetItemImage( item_assmb_entities, 0, 3 , wxTreeItemIcon_Selected);
              m_ptreelistctrl-&gt;SetItemImage( item_assmb_entities, 0, 3 );
              pcusTrData-&gt;SetCheckStatus(true);
          }
          else
          {
              m_ptreelistctrl-&gt;SetItemImage( item_assmb_entities, 0, 2 , wxTreeItemIcon_Selected);
              m_ptreelistctrl-&gt;SetItemImage( item_assmb_entities, 0, 2 ); 
              pcusTrData-&gt;SetCheckStatus(false);
          }
      }
  
  pcusData = new custTreeItemData(-1, TREEITEM_COMPS);
  item_comp = m_ptreelistctrl-&gt;AppendItem( root,"Comps", 0, 3, pcusTrData);
  
  for ( i = 1; i &lt;= 100000; i++ )
      {
          unsigned char r,g,b;
          wxTreeItemId item_comp_entities;
          custTreeItemData* pcusTrData = new custTreeItemData(i, TREEITEM_COMPS);
          pcusTrData-&gt;SetDataId(10);
          item_comp_entities= m_ptreelistctrl-&gt;AppendItem( item_comp,"Comps", 0, 3, pcusTrData);
          FillItems(pcusTrData,item_comp_entities);
          AppendColorImagetoTree( item_comp_entities, 2, r, g, b );
          AppendIdtoTree(item_comp_entities,1 ,10);
          if( true )
          {
              m_ptreelistctrl-&gt;SetItemImage( item_comp_entities, 0, 3 , wxTreeItemIcon_Selected);
              m_ptreelistctrl-&gt;SetItemImage( item_comp_entities, 0, 3 );
              pcusTrData-&gt;SetCheckStatus(true);
          }
          else
          {
              m_ptreelistctrl-&gt;SetItemImage( item_comp_entities, 0, 2 , wxTreeItemIcon_Selected);
              m_ptreelistctrl-&gt;SetItemImage( item_comp_entities, 0, 2 );  
              pcusTrData-&gt;SetCheckStatus(false);
          }
      }
  
  time-&gt;Pause();
  int cc = time-&gt;Time();
  wxString strda;
  strda.Printf("time taken%d" ,cc);
  wxMessageBox(strda.c_str());
  </code></pre>
  
  <p>Issue: I am going to display more then 200000 childrens but taking time around 17 Minutes </p>
  
  <p>to construct tree ,</p>