|
-
February 23rd, 2010, 02:04 PM
#14
Re: Eliminate PumpMessage()
Thanks for the great demo, really appreciate it!
 Originally Posted by Arjay
The virtual list control gets it's data from a std::list and the list is populated from a 2nd thread.
This caught my eye, I normally don't use std::list with listivew because link list can't be accessed via index unlike std::vector and your code indeed use std::vector as I expected.
 Originally Posted by Arjay
Code:
ctlList.SetItemText(iItem, 0, LPSTR_TEXTCALLBACK);
ctlList.SetItemText(iItem, 1, LPSTR_TEXTCALLBACK);
ctlList.SetItemText(iItem, 2, LPSTR_TEXTCALLBACK);
I actually don't use this in my code because it is handled by LVN_GETDISPINFO handler anyways. I commented this in your project and works fine too without it.
 Originally Posted by Igor Vartanov
The question is: do you or don't you use virtual list?
I think I might be confused with terminology here, more on this below. I took the opportunity to compared my project performance with Arjay's demo project. Here are the results.
My computer takes about 2 seconds to load/populate 7000 rows in Arjay's project.
My own project takes about 2.5 seconds to load 7000 rows from a file I have on disk.
Now the demo project as you see has only 3 columns and my listview has 35 columns. The demo project is not reading any disk file but I am also parsing 27MB file during this time. This makes me pretty happy about my results.
My loading mechanism is actually very similar to Arjay's project but I keep all the list data in CPtrArray instead of std::vector. Makes me think if I am already using virtual list without really know the terminology? All I know is I am definetely not using owner drawn listview style.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|