110,586
社区成员
发帖
与我相关
我的任务
分享
List<A> abc = new List<A>();
这样 A 对象实例内部知道自己是什么设备,它内部有一个 Timer 对象用来定时启动采集任务。但是从大的布局上看,仍然是使用集合 List<> 先来封装对象。先从面向对象系统分析设计的角度来定义好程序中的 Model,这是结构、分类、接口继承概念,而不要纠结什么“线程”这类简单概念。
所谓线程,不过就是说把private void Timer_Tick(object sender, EventArgs e)
{
a();
b();
c();
}
这类代码改为private void Timer_Tick(object sender, EventArgs e)
{
Task.Run(() =>
{
a();
b();
c();
});
}
这类异步执行代码,这有什么?
所以比较好的思路是:先把定时器驱动、面向对象封装系统结构等方面的基础打好。不要纠结个别底层的纯技术语句。List<Timer> tms = new List<Timer>();
集合就行了,而不是用鼠标把 Timer 拖到窗体来声明的那种简单做法。
select top 10 * from tableName with(nolock)
加上 with(nolock) , 避免阻塞。
这个表的设计应该尽量简单, 不要太多字段, 每个字段的长度也尽可能短, 不要用默认约束。
还有, 你这个表一天的数据量=100*3600*24=8640000
一天就 8百多万数据, 你需要考虑分历史表和当前表, 数据库的规划很重要。
哪些数据需要定时迁移到历史表, 哪些数据可以定时从历史表中删除……