public bool Start() { if(Interlocked.Exchange(ref _called_start, 1) == 0) { return true; } return TryReset(); }