Click here to Skip to main content
15,885,366 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 15:45
EvScott23-Apr-09 15:45 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 16:28
EvScott23-Apr-09 16:28 
Questionadding percentage to calculator Pin
icechef23-Apr-09 12:04
icechef23-Apr-09 12:04 
AnswerRe: adding percentage to calculator Pin
EvScott23-Apr-09 12:48
EvScott23-Apr-09 12:48 
GeneralRe: adding percentage to calculator Pin
icechef23-Apr-09 20:51
icechef23-Apr-09 20:51 
AnswerRe: adding percentage to calculator Pin
CPallini23-Apr-09 21:24
mveCPallini23-Apr-09 21:24 
QuestionThreadsafe Data Class Pin
softwaremonkey23-Apr-09 6:40
softwaremonkey23-Apr-09 6:40 
AnswerRe: Threadsafe Data Class Pin
Stuart Dootson23-Apr-09 6:56
professionalStuart Dootson23-Apr-09 6:56 
softwaremonkey wrote:
shared between several threads

softwaremonkey wrote:
using a mutex


I think you'll find critical section[^]s have better performance, as they're not kernel objects (they're no good between processes, unlike mutexes). Alternatively, if you're targetting Vista or newer, a slim reader/writer lock[^]?

softwaremonkey wrote:
At present, I only need to lock the mutex once before accessing all data members, then release the mutex


I believe that if a thread has ownership of a critical section, it can request ownership again and it gets it without delay.

So, you could have something like:

struct S
{
   S() { InitializeCriticalSection(&myDataLock); }
   ~S() { DeleteCriticalSection(&myDataLock); }

   void Lock() { EnterCriticalSection(&myDataLock); }
   void Unlock() { LeaveCriticalSection(&myDataLock); }

   int GetData() { Lock(); int i(data_); Unlock(); return i }
   void SetData(int i) { Lock(); data_ = i; Unlock(); }
private:
   // Don't want to be able to copy it...
   S(S const&);
   S& operator=(S const&);
   CRITICAL_SECTION myDataLock;
   int data_;
};


I'd be tempted to use RAII[^] to lock and unlock, but that's a detail...

Anyway - you could then use the accessor OR surround accesses with Lock/Unlock calls?

Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

GeneralRe: Threadsafe Data Class Pin
softwaremonkey23-Apr-09 7:07
softwaremonkey23-Apr-09 7:07 
GeneralRe: Threadsafe Data Class Pin
Stuart Dootson23-Apr-09 7:10
professionalStuart Dootson23-Apr-09 7:10 
GeneralRe: Threadsafe Data Class Pin
softwaremonkey23-Apr-09 9:03
softwaremonkey23-Apr-09 9:03 
GeneralRe: Threadsafe Data Class Pin
led mike23-Apr-09 9:04
led mike23-Apr-09 9:04 
GeneralRe: Threadsafe Data Class Pin
Stuart Dootson23-Apr-09 9:16
professionalStuart Dootson23-Apr-09 9:16 
GeneralRe: Threadsafe Data Class Pin
led mike23-Apr-09 10:09
led mike23-Apr-09 10:09 
AnswerRe: Threadsafe Data Class Pin
Luc Pattyn23-Apr-09 9:19
sitebuilderLuc Pattyn23-Apr-09 9:19 
GeneralRe: Threadsafe Data Class Pin
softwaremonkey23-Apr-09 21:47
softwaremonkey23-Apr-09 21:47 
AnswerRe: Threadsafe Data Class Pin
Roger Stoltz23-Apr-09 22:03
Roger Stoltz23-Apr-09 22:03 
GeneralRe: Threadsafe Data Class Pin
Luc Pattyn24-Apr-09 1:43
sitebuilderLuc Pattyn24-Apr-09 1:43 
Questionuse printf or cout in MFC Pin
johnjitu23-Apr-09 4:35
johnjitu23-Apr-09 4:35 
QuestionRe: use printf or cout in MFC Pin
David Crow23-Apr-09 4:45
David Crow23-Apr-09 4:45 
AnswerRe: use printf or cout in MFC Pin
johnjitu23-Apr-09 4:48
johnjitu23-Apr-09 4:48 
GeneralRe: use printf or cout in MFC Pin
johnjitu23-Apr-09 5:01
johnjitu23-Apr-09 5:01 
QuestionRe: use printf or cout in MFC Pin
David Crow23-Apr-09 5:03
David Crow23-Apr-09 5:03 
AnswerRe: use printf or cout in MFC Pin
johnjitu23-Apr-09 5:09
johnjitu23-Apr-09 5:09 
QuestionRe: use printf or cout in MFC Pin
David Crow23-Apr-09 5:10
David Crow23-Apr-09 5:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.