public override void Run()
{
try
{
// this used to not release the lock, preventing other threads from obtaining it.
Sm.MaybeRefreshBlocking();
}
catch (Exception e)
{
throw new Exception(e.Message, e);
}
}
}