Click here to Skip to main content
15,904,153 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: conversion from MultiByte Character set to UNICODE character set Pin
Purish Dwivedi23-Apr-09 22:12
Purish Dwivedi23-Apr-09 22:12 
QuestionKeybaord hooking Pin
ashtwin23-Apr-09 18:40
ashtwin23-Apr-09 18:40 
AnswerRe: Keybaord hooking Pin
Randor 23-Apr-09 21:31
professional Randor 23-Apr-09 21:31 
GeneralRe: Keybaord hooking Pin
ashtwin26-Apr-09 20:04
ashtwin26-Apr-09 20:04 
QuestionHow can run our application as a Service? Pin
Le@rner23-Apr-09 18:28
Le@rner23-Apr-09 18:28 
AnswerRe: How can run our application as a Service? Pin
_AnsHUMAN_ 23-Apr-09 18:35
_AnsHUMAN_ 23-Apr-09 18:35 
AnswerRe: How can run our application as a Service? Pin
Hamid_RT24-Apr-09 0:04
Hamid_RT24-Apr-09 0:04 
QuestionHow can the callback function streamout be called back about richeditor' StreamOut function. Pin
sunhaiminbnu23-Apr-09 16:25
sunhaiminbnu23-Apr-09 16:25 
AnswerRe: How can the callback function streamout be called back about richeditor' StreamOut function. Pin
Stuart Dootson23-Apr-09 21:56
professionalStuart Dootson23-Apr-09 21:56 
QuestionTrapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 12:38
EvScott23-Apr-09 12:38 
AnswerRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
Stuart Dootson23-Apr-09 12:50
professionalStuart Dootson23-Apr-09 12:50 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 12:55
EvScott23-Apr-09 12:55 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
Stuart Dootson23-Apr-09 13:03
professionalStuart Dootson23-Apr-09 13:03 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 13:53
EvScott23-Apr-09 13:53 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
Stuart Dootson23-Apr-09 14:29
professionalStuart Dootson23-Apr-09 14:29 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
EvScott23-Apr-09 15:05
EvScott23-Apr-09 15:05 
GeneralRe: Trapping WM_KEYDOWN and WM_KEYUP on entering text in edit control Pin
Stuart Dootson23-Apr-09 15:27
professionalStuart Dootson23-Apr-09 15:27 
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

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.