我使用“Thread.Sleep();”解决了这个问题。 它确实锁定了服务的主线程而不是我正在做的中间线程。
protected override void OnStop() { if (_stopping) return; try { _stopping = true; _shutdownEvent.Set(); Thread.Sleep(500); _writeFile.Log("O servi莽o foi parado"); base.OnStop(); } catch (Exception e) { _writeFile.Log("Falha ao parar o servi莽o " + e.Message); } finally { _stopping = false; } }