System.Threading.Timer 线程计时器:
5个Timer对象:
Timer timer1 = new Timer(new TimerCallback(Proc1),null,0,100)
Timer timer2 = new Timer(new TimerCallback(Proc2),null,0,100)
Timer timer3 = new Timer(new TimerCallback(Proc3),null,0,100)
Timer timer4 = new Timer(new TimerCallback(Proc4),null,0,100)
Timer timer5= new Timer(new TimerCallback(Proc5),null,0,100)
程序在PC机上运行没有任何问题,
但是移到HP服务器上 运行一段时间都是正常的,但是线程数不断增减,过几分钟,程序就停止了
解决办法:
1. 充分压缩每个TimerCallback的处理时间,这种做法需要修改大篇的程序,因为系统在用,修改失败,非常不好办;
2. 使用服务器计时器 System.Timers.Timer ,他也是多线程的;
或者使用System.Forms.Timer , 他与用户UI共用一个进程
3.使用异步调用方式
异步编程主要是针对某些耗时的操作、无需和用户交互、只执行一次无需返回结果等的操作。
用Timer不停的触发,太频繁又耗时,线程池肯定玩完。
如果你的本意不是要定时的不停的调用Proc1/Proc2/Proc3/Proc4/Proc5,而是要一直不停的开着线程分别调用Proc1/Proc2/Proc3/Proc4/Proc5,开五个线程,死循环,不停的处理就可以了,处理一次以后,适当的休眠,保证所有线程都能运行,如:
private void Proc1()
{
while(flag) //这样可以在其他地方作某个动作,修改flag=false,使线程停下来
{....}
}
改为thread1=new thread(new threadstart(proc1))
thread1.start()的形式吧,然后把proc1的代码改为死循环:
while(true)
{
//原来proc1处理代码
Thread.Sleep(100); //等待100毫秒
}
记得程序退出时关闭线程 thread1.close();
分享到:
相关推荐
在"定时器问题.docx"文档中,可能包含了具体的定时器使用示例、错误案例及解决方案,建议阅读以获取更详细的解答。 总结,理解定时器的工作原理、选择合适的定时器类型以及妥善处理定时器带来的问题,都是IT专业...
三菱FX3U源码最新修正版:解决卡顿与特殊定时器问题,附立创EDA与AD原理图及测试配套资料,转卖国产兼容三菱FX3U源码,最新一波bug修改,修改监控时卡顿问题。 8位口令功能,程序消除功能,定时器特殊情况下不运行...
基于三菱FX3U的源码修正,解决卡顿与特殊定时器问题,增强加密与程序消除功能,带Modbus-TCP与实时时钟,配套测试资料全支持。,国产兼容三菱FX3U源码,最新一波bug修改,修改监控时卡顿问题。 支持8位加密,程序消除...
综上所述,要解决TIA博途中定时器不工作的问题,需全面检查程序逻辑、定时器设置、数据块的使用以及硬件状态。通过仔细分析并尝试上述解决方案,通常能找出问题的根源并修复。在编程过程中,理解定时器的工作原理和...
6. 混合开发中的定时器问题: - 当在H5环境下,uni-app的定时器与原生浏览器的定时器并无太大区别,但在小程序环境中,需要考虑其特有的运行机制。 - 在App端,由于涉及到原生插件的交互,有时可能需要借助uni-app...
总结来说,解决Android中的定时器问题,关键在于理解Android的UI更新机制,合理使用线程,以及确保良好的定时器管理。通过优化定时器的使用,可以避免图片闪烁、错位和时间不同步等问题,提高用户界面的流畅性和应用...
Java定时器问题实例解析主要关注的是如何在Java中创建一个简单的定时器系统。在这个系统中,定时器的主要功能包括添加定时器、取消定时器以及定时器检查。下面将详细解释这些概念并分析给出的代码。 1. **添加...
然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将详细讨论这些问题,并提供一个基于`js class`的解决方案。 首先,让我们理解为什么会出现定时器叠加问题...
1. 初始化定时器:配置定时器的工作模式,如自由运行或捕获模式,设置预分频值以确定计数频率,然后加载初值,启动定时器。 2. 开启中断:在处理器的中断控制器中,为定时器中断设置使能标志,允许定时器中断请求。 ...
在标题中提到的问题是关于如何正确停止定时器。虽然看似简单,但如果不正确地停止,定时器可能仍然继续触发事件。对于 `System.Timers.Timer`,停止定时器的方法是调用 `Stop` 方法,这将取消定时器的下次触发。对于...
### 应用笔记LAT1299+定时器不按设定超时产生中断 #### 1. 引言 在嵌入式系统开发过程中,定时器的正确...通过本次对STM32定时器问题的深入探究,不仅解决了客户的实际问题,也为其他开发者提供了宝贵的经验和教训。
3. 异常处理:考虑在程序中加入异常处理机制,防止因定时器问题导致的程序中断。 通过理解并熟练运用定时器,可以显著提升工业机器人程序的灵活性和智能化程度,使其更好地适应各种生产环境和任务需求。这份“工业...
单片机多定时器软件设计是为了解决在51单片机中普遍存在的硬件定时器资源不足的问题。51单片机作为一种经典的微控制器,其内部通常配备有2到3个定时器,如Timer0、Timer1和Timer2。然而,在实际应用中,我们可能需要...
关于JS定时器(setTimeout setInterval)定时不准问题1 在JavaScript中,setTimeout和setInterval是两个基本的定时器函数,用于实现延迟执行或循环执行某个函数。然而,这两个函数在执行时往往和我们设置的延迟时间...
"国产兼容三菱FX3U源码深度修复Bug,增强口令与定时器功能,... 定时器问题; modbus-tcp功能; 实时时钟; 稳定运行; 测试用板; pcb原理图; 立创EDA/AD版本。,国产三菱FX3U兼容源码升级:Bug修复,功能增强,稳定运行!
在上述讨论中,用户遇到的问题是如何在定时器运行过程中通过触摸屏动态修改定时器的时间设定值。根据讨论内容,我们可以得出以下关键知识点: 1. **定时器设定值的地址**: 定时器的设定值通常存储在一个特定的...
"国产FX3U源码Bug修复及功能增强:实时时钟、Modbus-TCP与深度测试稳定版",国产FX3U源码,最新一波bug... 定时器问题; modbus-tcp功能; 实时时钟; 深度测试; 稳定运行。,“国产FX3U源码优化:稳定运行与高级功能修复”
6. **故障处理**:确保有适当的错误检查和恢复机制,以应对可能的通信错误或定时器问题。 这个测试程序的目的是验证STM32F030CCT6的定时器和串口功能是否正常工作,同时提供了一个基础框架,以便在实际项目中进行...
8. **故障排查和调试技巧**:教程可能涵盖了一些诊断和修复定时器问题的方法,这对于开发者来说是非常实用的技能。 综上所述,这个压缩包是一个宝贵的教育资源,对于理解和熟练使用DragonChip芯片的定时器功能非常...