ListBox control from seperate thread - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

ListBox control from seperate thread

I am performing initialization of a listbox in a dialog based MFC program. The initialization code is running in a seperate thread and I'm not sure whether I can safely invoke the control variable for the listbox (such as AddString( LPCTSTR ) ) from this seperate thread.

In my code I create the thread in the CDialog::OnInitDialog() function and pass it a 'this' pointer as its lpParameter. Thus the thread can invoke all the control variables within the CDialog class. Is this a bit of a hack ? Should I be using SendMessage() to communicate with the listbox ?

I appreciate any advice.

Tom

Comments

  • tom_swtom_sw Posts: 828Member
    : I am performing initialization of a listbox in a dialog based MFC program. The initialization code is running in a seperate thread and I'm not sure whether I can safely invoke the control variable for the listbox (such as AddString( LPCTSTR ) ) from this seperate thread.
    :
    : In my code I create the thread in the CDialog::OnInitDialog() function and pass it a 'this' pointer as its lpParameter. Thus the thread can invoke all the control variables within the CDialog class. Is this a bit of a hack ? Should I be using SendMessage() to communicate with the listbox ?
    :
    : I appreciate any advice.
    :
    : Tom
    :
    Sounds like it will be OK. I have several applications where I access internals of a particular object from a thread by passing the this pointer into the thread on creation. The only problem you could have is if other threads are simultaneously accessing the same object. You will probably want to put the code that accesses that box with a Critical section and control access with a call to WaitForSingleLock or something siilar.
Sign In or Register to comment.