如设了个全局变量i,有多个线程对它进行访问,但可能一条语句就解决了,如这样:temp = i++;这需不需要设个临界区或互斥呢?
解决方案 »
- word中闪烁的那个光标是软光标,因此用GetCaretPos得到的不是它的位置,我要得到这个软件光标的位置(坐标)怎么办?
- 公交转车和最短路径查询问题,请大家一定要帮帮我啊,我实在做不出来啊。
- typedef void* (*CALLSVRPROC)(CLog*);
- 关于进程间通信!处学者的困惑~
- 把CString类型常量如255,转化成16进制数FF,用什么函数
- 高人救求啊!我在DLL中用不起UpdateData啊,说是未定义啊!
- 请问ADO数据库编程时,怎样在同一对话框中操作两个不同的数据表
- 能否用数组或其他方法,解决分支选择的问题
- 各位,除了CSDN外,还有比它更好的中文论坛吗?
- 請問 template 的指針要怎麼寫?
- 求《windows网络编程》(第2版)电子书及附书代码(100分)
- 列表控件中无法显示图片信息!急求各位大虾解答
定义:
CRITICAL_SECTION CRITICAL_VARIABLE_WRITE;
初始化:
InitializeCriticalSection( &CRITICAL_VARIABLE_WRITE);
加入临界区:
EnterCriticalSection(&CRITICAL_VARIABLE_WRITE);
temp = i++;
LeaveCriticalSection(&CRITICAL_VARIABLE_WRITE);
如果是i=2就不变。
如果是tmp=i;i=2;就用tmp=InterlockedExchange((LONG*)&i,2)