jjzjj

c# - Windows 服务应用程序挂起

背景:-运行WindowServer2008R2。-服务器已使用所有最新更新进行修补。-服务器正在运行5个内置于.NET3.5中的服务,所有这些服务都使用计时器重复检查数据库(主要是每10秒一次)。-这些服务不是CPU/RAM密集型。-服务器没有任何性能和资源问题或瓶颈。在大多数情况下,一切都按预期运行,但有时,某些(或所有)服务会停止工作。我正在将所有应用程序异常记录到文件中,但在失败时没有任何异常。事件记录器中也没有错误,服务管理器将服务视为正在运行。我必须停止服务并再次启动它们才能恢复功能。这种行为是不可预测的,有时需要一周或一个月才能停止工作。此外,有时服务会一起“死亡”,或者

C# Windows 服务计时器未触发

我在Windows服务中使用System.Threading.Timer定期执行一个方法。定时器只触发一次,它不会触发。谁能帮忙。下面是代码privateTimerCallbacktimerDelegate;protectedoverridevoidOnStart(string[]args){timerDelegate=newTimerCallback(DoWork);serviceTimer=newTimer(timerDelegate,null,1000,Timeout.Infinite);}privatevoidDoWork(objectstate){GetMessages();

c# - 制作一个持续运行的 C# 应用程序

我正在编写一个客户端应用程序,将数据从用户计算机推送到网站。我希望此应用程序每60秒更新一次网站。现在我的函数被包裹在一个无限的while循环中,有45秒的sleep时间。但是,Windows表示应用程序没有响应,即使它更新了网站。以下是我的代码的结构。 最佳答案 您的问题是您的while循环阻塞了UI线程。要解决此问题,您需要在单独的线程上运行代码。最简单的方法是开始……可能是使用Timer:System.Timers.Timertimer=newSystem.Timers.Timer(45000);//timerwillexec

linux - PostgreSQL:CURRENT_TIMESTAMP 和 CLOCK_TIMESTAMP 解决方案:Windows 与 Linux?

所以我对PostgreSQL计时函数有这个有趣的问题。情况是这样的。我们有一个预生产服务器(Linux),用于存放我们正在开发的应用程序。我还在该数据库(Windows)的本地副本上做一些工作,以防服务器正在进行一些更重要的工作。我最近遇到了一个问题,我开始在本地数据库副本的日志表上发现主键违规。我认为这是不可能的,因为我使用CLOCK_TIMESTAMP(当前系统时间)作为主键。此外,我在预生产服务器上进行了测试,它运行良好。所以我做了一些调查。我最终发现,如果我在服务器上运行“SELECTCLOCK_TIMESTAMP()”,它会将时间返回到微秒。如果我在我的本地主机上运行它,它只

用于按指定时间间隔重命名文件的 Windows 批处理文件

我想编写一个Windows批处理文件,目的是每25秒重命名一个文件。我还希望批处理文件在300秒后终止。我该怎么做呢?这是我到目前为止所拥有的。STARTRENAMEtest.gtest.goSLEEP25RENAMEtest.gotest.gGOTOSTART 最佳答案 嗯,这并不难。有很多众所周知的批处理技巧,例如误用ping来休眠(这使您不必集成非标准工具),然后我们可以得出以下结论:@echooffsetlocalsetn=0:startrentest.gtest.gopinglocalhost-n26>nul2>&1ren

C# winform 闪烁标签背景色延迟

我有一个winform应用程序,我需要使标签背景颜色闪烁。我正在尝试使用for循环和Thread.Sleep来做到这一点,但不起作用。感谢您的帮助和建议:privatevoidbutton1_Click(objectsender,EventArgse){for(inti=0;i 最佳答案 为此任务使用UI计时器,而不是休眠。你让主线程一直处于休眠状态,并且你正在阻止用户输入。使用Thread.Sleep几乎总是表明您做错了什么。Thread.Sleep正确的情况很少。具体来说,让UI线程休眠是永远不正确的。放一个Timer在表单组件

c# - 如何使定时器以重复的方式触发

我有一个计时器,我想在每个星期一下午5点过期。在测试应用程序时,一到星期一下午5点,我的任务就会按预期触发。但是,当我将系统日期和时间更改为下周下午5点时,任务不会触发。这是我的代码:Timertimer=newTimer(callback,application,timeToEnd,TimeSpan.FromDays(7));我感觉它与TimeSpan.FromDays(7)部分有关。有什么想法吗? 最佳答案 这不是Timer的好用法。您应该创建一个控制台应用程序来执行您想要的操作,然后使用WindowsScheduler或第3方

c++ - SetTimer(带回调函数)是否通过启动一个新线程来工作?

使用SetTimer时这样:SetTimer(hWnd,IDT_TIMER_LONGPROCESSING,2000,(TIMERPROC)NULL);DoSomethingElse();执行会立即继续(即它是非阻塞并且DoSomethingElse()会立即执行),但是当此消息到达时caseWM_TIMER:if(wParam==IDT_TIMER_LONGPROCESSING)DoAOneSecondLongJob();然后它在1秒长的处理过程中再次阻塞“窗口消息循环”,导致界面无响应。这是SetTimer的正常行为,只是发布一条计时器消息。但我看到SetTimer也可以以第二种方式

windows - 在定义的时间内等待窗口消息

我正在用winapi编程。如何在定义的时间内等待消息?如果没有消息,我可以做另一个任务。我不能使用Sleep,因为窗口回调过程会被延迟。while(true){...//waitamessagefor30milisecondsGetMessage(&message,hwnd,0,0))orPeekMessage(&message,hwnd,0,0,PM_REMOVE)...if(no_message){call_a_function();}else{if(finish)break;TranslateMessage(&message);DispatchMessage(&message);

c# - System.Timers.Timer timer1_Elapsed 未触发!帮助!

我正在创建另一个Windows服务,但我的计时器没有计时,我不知道为什么!我像以前的服务一样使用system.timers.timer,但它不起作用。我尝试附加到它,但它似乎没有做任何事情。我的代码:namespaceExpiryNotifier{publicpartialclassExpiryNotifier:ServiceBase{publicExpiryNotifier(){InitializeComponent();if(!System.Diagnostics.EventLog.SourceExists("ExpiryNotifier")){System.Diagnostics