如果在同一类中有以下两种方法。
bool CSettings::GetDelayTimer() { return m_iTimerDelay; } void CSettings::SetDelayTimer(int iTimerdelay) { m_iTimerDelay = iTimerdelay; }
为了同步上面的方法,我创build了以下locking/解锁方法。
void CSettings::Lock() { DWORD dwRet = WaitForSingleObject(m_hSettingsLock,INFINITE); if( dwRet == WAIT_OBJECT_0) return; } void CSettings::UnLock() { ReleaseMutex(m_hSettingsLock); }
如何使用locking/解锁来同步这些getter / setter方法。 如果我在getter方法中使用lock,我不会得到解锁的机会,因为它会在解锁之前返回。 我的意思是说:Lock(); 返回m_iTimerDelay; 开锁(); 它会工作吗? 将locking/解除locking应用于setter不是问题。
任何想法来同步这些方法?
getClass()。getResource(resourcePath)在Windows上有效,在Linux上为null
在Rmd文件中包含apsrtable(或stargazer)输出
背景c键盘映射程序
在导入的多处理器子类上使用.start()时发生IOerror
问候,Khurram。
错误0x2在Git bash中启动node.exe -v
如何指定给定文本后面的内容是在sapi中的语法文件中的拼写听写?
从PHP执行程序挂起APACHE
在C#应用程序中,Windows在何处显示进程在任务pipe理器中的名称?
File.copy()到同一台机器上的networking共享是否通过networking复制文件?
使用RAII 。 创建一个对象,其构造函数获取该锁并且其析构函数释放它。 那么你可以做:
{ ScopedLock f(m_hSettingsLock); return m_iTimerDelay; }
或者,最可能的劣等:
{ Lock(); bool ret = m_iTimerDelay; Unlock(); return ret; }
请注意,在这两种情况下,返回的值可能是陈旧的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。