Is there a better way to do implement a simple lock like below?
I only want to to the “DOSOMETHING” if it’s not already being run. Should I be using reall locks here? if I use lock will that cause everything to queue up and wait for the lock to release? (that’s not what I want!)
Thanks
bool running = false;
void DataDisplayView_Paint(object sender, PaintEventArgs e)
{
// if (!this.initialSetDone)
if (!running)
{
this.running = true;
//DOSOMETHING
this.running = false;
}
}
No, you do not want to use locks here. This is not a thread synchronization problem. This is a method reentrancy problem.
You might try something like this.