在处理线程时,我有一些一般性问题。我一直在环顾四周,但没有真正看到我的问题的任何答案
当您要在一个线程中处理一个类中的多个变量时,是否应该为要锁定在该类中的每个变量都拥有一个“锁定对象”?像这样?
static readonly object lockForVarA = new object();
private float varA;
static readonly object lockForVarB = new object();
private float varB;
这也是处理线程安全自定义类型的有效方法吗?
public class SomeClass
{
public SomeClass()
{
//Do some kind of work IE load an assembly
}
}
public class SomeOtherClass : BaseClassFiringFromRandomThread
{
static readonly object someClassLock = new object();
SomeClass someClass;
public override void Init()//this is fired from any available thread, can be fired multiple times and even at the same time
{
lock(someClassLock)
{
if(someClass == null)
someClass = new SomeClass();
}
}
}
这段代码位于一个类的构造函数中,该类可以随时从任何线程调用
宝慕林4294392
慕的地10843
相关分类