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

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.