Aid*_*anO 2 c# locking nonblocking
有没有更好的方法来实现像下面这样的简单锁定?
如果它还没有被运行,我只想要"DOSOMETHING".我应该在这里使用reall锁吗?如果我使用锁定会导致一切排队并等待锁定释放?(那不是我想要的!)
谢谢
bool running = false;
void DataDisplayView_Paint(object sender, PaintEventArgs e)
{
// if (!this.initialSetDone)
if (!running)
{
this.running = true;
//DOSOMETHING
this.running = false;
}
}
Run Code Online (Sandbox Code Playgroud)
不,你不想在这里使用锁.这不是线程同步问题.这是一种方法重入问题.
你可能会尝试这样的事情.
bool running = false;
void DataDisplayView_Paint(object sender, PaintEventArgs e)
{
if (!this.running)
{
this.running = true;
try
{
//DOSOMETHING
}
finally
{
this.running = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |