【发布时间】:2012-07-06 04:30:16
【问题描述】:
我有一个方法(比如 method1)写入数据库(sqlserver)和另一个方法(比如 method2)在一段时间后尝试访问同一个数据库并更新由 method1 创建的数据行。
由于 LAN 断开连接,method1 无法访问 db 时会出现问题(这不是例外,这是我的软件中肯定会出现的情况,深入细节会使问题变得过于复杂)如果 method1 无法访问access db method2 无法正常工作。
如果 LAN 断开连接,我想要做的是让方法 1 将值存储到本地数据库而不是服务器,并且一旦它在本地数据库中输入值,应用程序应该在 10-15 秒后开始尝试访问服务器.
我应该使用什么计时器或创建一个新线程?
【问题讨论】:
-
您的 LAN 断开连接,您希望您的应用每 10-15 秒尝试重新连接一次!?听起来解决方案是修复网络。线程消耗的资源比计时器少。
-
LAN 不会自行断开连接......正如我告诉你的,这不是一个例外,这种情况会发生多久,我不知道
-
@JeremyThompson,“一个线程消耗的资源比一个计时器少”是一个非常有问题的说法......创建一个线程不是免费的,至少会占用一些内存空间用于堆栈,不像计时器。
-
@AlexeiLevenkov - 我的意思不是秒表 - 我的意思是像 Winforms 计时器控件一样的计时器 - 我应该澄清一下。
-
@JeremyThompson,我明白了。我仍然认为苹果与橘子的比较 - 很难说什么更昂贵,因为它们消耗不相关的资源(线程的内核对象与托管堆+定时器控制的消息)。
标签: c# multithreading timer