gpt4 book ai didi

c# - Windows 服务的 OnStop() 方法不会被调用

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:13 25 4
gpt4 key购买 nike

我用 C# 编写了一个 Windows 服务来记录所有用户登录和注销,并将它们保存在服务器上的一个表中。

我用过 whiletrue 循环在此循环中每分钟检查系统的当前用户,因此当我打开系统时,我的服务进入“Starting”状态。

到目前为止一切正常,但问题是 OnStop()当我关闭我的系统时,方法不会被调用。我知道问题出在服务启动时的状态,因为当我评论 while 时在我的服务中循环 OnStart()方法,OnStop()方法将得到正确执行。

最佳答案

OnStart(和 OnStop)不是用来完成的——它们旨在初始化服务,然后完成。我通常做的是创建一个单独的 thread (这是在创建 TPL 之前),启动线程,然后完成。

在您的情况下,线程将启动一个计时器,并等待一个停止信号,该信号可以在服务停止时从 OnStop 方法发送。当停止信号到达时,应停止定时器。

关于c# - Windows 服务的 OnStop() 方法不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com