|
I am not convinced it makes sense to protect data at the field level.
assuming not all combinations of valid values are valid for the overall object, having protection at the member level can still yield an invalid object state (one thread changing one member, then another thread changing another member)...
|
|
|
|
|
Im not sure that this is a problem. As I understand it, if one thread enters the critical section, it will prevent any other threads from doing the same, even if the second thread is trying to access a different data member. This is because all Get/Set methods use the same critical section.
I could be wrong though. 
|
|
|
|
|
Luc's point is probably that if you want to change multiple values like a transaction, you'll need to embrace the "transaction" with a lock. Otherwise the calling the calling thread may be preempted and another thread may corrupt the "transaction".
It means that in this case it's useless to acquire a lock when entering a getter/setter method and release it when exiting.
On the other hand, if you don't have to change values like a transaction, you'll most likely do fine with the idea Stuart provided.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Right.
|
|
|
|
|
HEY EVERYBODY
I HAVE A PROJECT BUILT IN MFC AND NOW I WANT TO PRINT SOMETHING IN CONSOLE INSTEAD OF USED THE WINDOWS.
I HAVE TRIED FOLLOWING CODE BUT NOT WORKING ,,,,,GIVE ERROR........
BOOL CMANDTUApp::InitInstance()
{
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
AllocConsole( );
// setup stdout
{
int fd = _open_osfhandle( (long)GetStdHandle( STD_OUTPUT_HANDLE ), 0);
FILE* fp = _fdopen( fd, "w" );
*stdout = *fp;
setvbuf( stdout, NULL, _IONBF, 0 );
}
// setup stdin
{
int fd = _open_osfhandle( (long)GetStdHandle( STD_INPUT_HANDLE ), 0);
FILE* fp = _fdopen( fd, "r" );
*stdin = *fp;
setvbuf( stdin, NULL, _IONBF, 0 );
}
// test stdin & stdout
//std::cout << "Console in place. Type a number: ";
/*
int x = 0;
std::cin >> x;
std::cout << "Value read: " << x << std::endl;
// generated code
*/
FreeConsole();
return FALSE;
}
WELCOME ANY TYPE OF ADVICES ,THANKS IN ADVANCE :
|
|
|
|
|
Are we supposed to guess what the error is?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
C:\MANDTU\MANDTU.cpp(91) : error C2653: 'std' : is not a class or namespace name
Error executing cl.exe.
|
|
|
|
|
yes i have added iostream above ,after
#include "stdafx.h"
|
|
|
|
|
Have you tried using printf() instead of cout ? Have you seen this?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
ya thanks
NOW ITS NOT GIVING ERROR
BUT THE CONSOLE NOT REMAIN ,IT WIL ESCAPE SHORT
|
|
|
|
|
johnjitu wrote: IT WIL ESCAPE SHORT
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
MEANS IT CONSOLE SCREEN IS REMAIN THERE ,IT IS FLICKING ,MEANS I CANNOT SEE THE OUTPUT ,SCREEN WILL DISAPPEAR SHORTLY.
|
|
|
|
|
end your program with a readline or a read or something to that effect, then the console remains visible until you hit the enter key.
|
|
|
|
|
Thank you very much to all .........
|
|
|
|
|
So wouldn't it be easier to just create an actual console application, or do you really need a GUI for other reasons?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
|
i have put a timer like Sleep (100),now it remain there ,but i problem havnot solve yet because it opening other console ,but i would like to do this in same window ,like other normal program
|
|
|
|
|
you are supposed to know such basic things yes.
|
|
|
|
|
Why are you even doing what you are doing? If you are writing a GUI program, use the GUI. If you want a console program, use the app wizard and create a console program. Don't mix the two!
(I prefer the printf family of functions.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Thanks ,i got this project in MFC and i have to use it as a console ,it will be very difficult to begin from new , getoff all the MFC part and remain works as same it will time taking .
|
|
|
|
|
I seriously doubt that. MFC can be used in a console application. Just run app wizard, pick Win32 and check the box for MFC.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
|
|
Archy_Yu wrote: I want discuss qustion with people from others contry.Who have MAN group...
Is that a Metropolitan Area Network, or are you soliciting?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
And your question for the Codeproject community is...?
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Individuality is fine, as long as we do it together - F. Burns
Help humanity, join the CodeProject grid computing team here
|
|
|
|