|
Hi,
I've got 2 threads, one continuously uses "SendMessage" to tell main thread to perform some processing and update the GUI.
However, after running my application for anywhere between 1/2 hr to 5 hours, SendMessage will randomly get stuck.... IE: The window that's suppossed to receive the message never receives the message, and the application GUI just freezes.
Can anyone tell me if this has happened to them before, or what could possibly cause the message sent by SendMessage to not-be-received by the recepient window?
Thanks,
skyapie
|
|
|
|
|
Its called a deadlock and your thread synchronisation is not working correctly, SendMessage() will wait until the message has been processed before returning, you could try PostMessage() instead which will not wait but I would check your thread synchronisation first.
Darka [ Xanya]
"I am not a slave to a god that doesn't exist."
|
|
|
|
|
skyapie wrote: I've got 2 threads, one continuously uses "SendMessage" to tell main thread to perform some processing and update the GUI.
Secondary threads should post messages (i.e., PostMessage() ) to the primary thread.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
As has been said, never use SendMessage() to send messages between threads. Use PostMessage() instead. If you really need the return value from the message then you can use SendMessageTimeout() .
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
Hello all,
did anyone wrote a CStringTable, similar to the CStringArray class from MFC? Thanks in advance.
|
|
|
|
|
Hi,
list< CSting > or list< string >
vector< CString > or vector< string >
-----------
Mila
|
|
|
|
|
Thanks for your quick answer but ... what you suggested me, if I understood right, is to use list<cstring> instead of MFC's CStringArray. I would like to use a CStringTable like CStringArray[nColumnCount], with the proper interface to that. Has anybody did that before, or I just start from scratch? Thanks again.
|
|
|
|
|
oh, ok, you need something like :
MFC:
CArray < CStringArray >
STL:
std::vector < std::vector< std::string > >
|
|
|
|
|
Hi,
my question was similar to Maximilien' question - What are you trying to achieve with this new class ? ... But now I think if you try to do something fast, secure and with pretty simple methods it would be good. Problem with CStringArray and generally with CString from MFC is, that operations on it take many many many time (I mean by processor).
-----------
Mila
|
|
|
|
|
What is the difference between the 2 ?
What are you trying to achieve with this new class ? that it is not MFC dependent ?
|
|
|
|
|
Hi.
I am using Windows xp OS and I have created an application in VC++.
When I execute it, what I see is the basic display properties of the controls. What I what is to display the controls in my application in same way as they appear on XP.
For example, check mark in check boxes appears in green color while it appears in black color in my application.
How can I achieve the XP like display of my controls?
Thanks
Sameer
Sameer
|
|
|
|
|
|
Hi Benjymous
Thanks for help.
It worked.
Thanks again
Sameer
|
|
|
|
|
hi all
how to konw that a COM Object support multithread or not
thanks
shadrach
|
|
|
|
|
Hopefully the writer of the object put the proper restrictions on the object.
If it is not multithread aware, then it will only be allowed to be created in a Single Threaded Apartment (STA), then if you try to talk to multiple COM objects on different threads, the COM architecture will protect and syncrhonize those objects.
Otherwise, a COM object will be thread safe if it is allowed to run in the Multi-threaded Apartment(MTA) or the Free Threaded Apartment. In this case, the object itself must syncrhonize the internal state data to properly run.
When you create a COM object, you specify the type of thread that it is created on. If the thread that you are attempting to create the object on is not compatible with the supported apartment types for the COM object, the object creation should fail.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
In general you should have to worry. As long as you marshal interfaces pointers between threads COM should take care of the details.
Steve
|
|
|
|
|
How to access *.mdb data in a MFC Dialog based application....
|
|
|
|
|
|
|
Here is another example.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi
Who can write a program like :
http://timecapsule.yahoo.com/capsule.php
Or any idea?
|
|
|
|
|
What, you want this control in C++ ?
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
|
Who can write a program like
Are you expecting someone to write it for you ?
If you need a C++ version of this control, then have a go at designing and writing one.
Have you tried ?
Darka [ Xanya]
"I am not a slave to a god that doesn't exist."
|
|
|
|
|
May be I try it in my first free time, if so I'll send it to CodeProject!
But first I want to know is there anybody who has written something like that (in VC++)?
|
|
|
|