سؤال

لدينا عدة MFC التطبيقات التي تستخدم CMutex( false, "وكذا" ) ، حيث "بلاه" يتيح مزامنة العمل عبر حدود العملية.

واحدة من هذه التطبيقات تم إعادة كتابتها دون MFC (باستخدام Qt بدلا من ذلك).كيف يمكن محاكاة CMutex باستخدام Win32 المكالمات ؟ (Qt هو QMutex ليس بين العملية.) أنا أفضل عدم تعديل تطبيقات MFC.

هل كانت مفيدة؟

المحلول

بين عملية mutexes تريد هذه الدعوات:

CreateMutex

WaitForSingleObject

ReleaseMutex

CloseHandle

هذه هي الأساسية استدعاءات Win32 API التي CMutex هو التفاف حول.

في عملية فقط mutexes يمكنك أيضا استخدام هذه الدعوات التي هي أسرع:

InitializeCriticalSection

EnterCriticalSection

LeaveCriticalSection

DeleteCriticalSection

نصائح أخرى

التالية funcs المحتمل أن تكون ما تريد ، يتم توثيق كل على MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top