多线程,函数的static变量量,如何用Cmutex(或类似的方法)控制读写
CString MyFunction(){
static CString aaa;//不同的函数可能有不同的类型变量,如CStringArray
if (SomeCondition){//如何在这一段加锁,不允许别的线程操作.
...
DoSomething();
...
}
return aaa;
}
整个程序是从单线程改为多线程并发的,有多个类似的函数.
可以一个个函数改,但尽量不要定义函数外的CMutex(或类似的变量),因为至少20几个互不相关的函数进行类似的操作,如果只定义一个全局的锁,不必要的竞争会很激烈,如果在同一个文件定义多个不同的锁,由各个文件的各个函数使用,好像又太麻烦.
可以牺牲一点性能为代价.
VC不熟,尽量详细点.
谢谢!