You are probably missing a _lock.EnterWriteLock(); between public static Result Stop() { and try, right?
_lock.EnterWriteLock();
public static Result Stop() {
try