用事物来做,读取的那个事物判断如果状态为0,则返回0,并在事物中将状态重新置1.
觉得是不是可以将打印机配置信息缓存到内存中,设计两个类
class Print
{
int m_state;
bool Enable()
{
if(m_state==0)
{
lock(this)
{
if(m_state==0)
{
m_sate=1;
return true;
}
}
}
return false;
}
}class PrintCollection
{
bool Print(int id)
{
Print print=this[id];
int testCount=0;
bool result=false;
while(testCount<5)
{
testCount++;
if(!print.Enable()) {Sleep(5000); continue;}
//打印
result=true;
break;
}
return result;
}
}
通过打印Id来选择打印机信息,最多可以尝试获取n次