0

我有一个写入数据库(sqlserver)的方法(比如说method1)和另一个尝试在一段时间后访问同一个数据库并更新由method1创建的数据行的方法(比如说method2)。

当method1由于LAN断开而无法访问db时出现问题(这不是例外,这是我的软件中肯定会出现的场景,深入细节会使问题变得过于复杂)如果method1无法访问db method2不能工作。

我想要做的是让方法 1 将值存储到本地数据库而不是服务器,如果 LAN 断开连接,并且一旦它在本地数据库中输入值,应用程序应该在 10-15 秒后开始尝试访问服务器。

我应该使用什么计时器或创建一个新线程?

4

3 回答 3

5

要在某个时间间隔后执行某个操作,Timer可能是最好的选择。

计时器:在应用程序中生成重复事件。

于 2012-07-06T04:32:32.123 回答
0

您需要在将来的某个时间启动长时间运行(可能冻结 GUI)的操作。您可以使用计时器在间隔后开始操作,并使用线程来执行长时间的后台操作。

于 2012-07-06T04:37:16.633 回答
0

下面的链接在 c# 中演示了一个通用轮询组件,它以指定的时间间隔运行并使用后台线程来执行指定的用户操作。您可以使用此操作检查本地数据库并执行必要的操作。

示例用法:

IPoller poller = new UrlPoller(args[0], TimeSpan.FromSeconds(7));
IPolling pollingComponent = new Polling.Core.Polling(poller);
pollingComponent.SubscribeForPollingUpdates(PollingAction);
pollingComponent.Start();

有关代码和完整示例,请参见:

http://www.avantprime.com/blog/24/an-example-of-repeating-code-using-a-worker-thread-without-using-timers-c

于 2012-09-14T15:35:57.470 回答