我有一个写入数据库(sqlserver)的方法(比如method1)和另一个尝试在一段时间后访问同一个数据库并更新method1创建的数据行的方法(比如method2)。
当由于局域网断开连接而导致方法1无法访问数据库时出现问题(这不是一个例外,这种情况肯定会在我的软件中出现,如果方法1未能通过,那么进入细节会使问题过于复杂)访问db方法2无法正常工作。
我想要做的是,如果LAN断开连接,将method1存储值存储到本地数据库而不是服务器,并且只要它在本地数据库中输入值,应用程序应该在10-15秒之后开始尝试访问服务器
我应该使用计时器或创建新线程?
答案 0 :(得分:5)
要在一段时间间隔后执行某项操作,Timer可能是最好的选择。
计时器:在应用程序中生成重复事件。
答案 1 :(得分:0)
您需要在将来的某个时间开始长时间运行(可能冻结的GUI)操作。您可以使用计时器在间隔和线程之后开始操作以执行长后台操作。
答案 2 :(得分:0)
下面的链接在c#中演示了一个通用的轮询组件,它以指定的时间间隔运行,并使用后台线程来执行指定的用户操作。您可以使用此操作检查本地数据库并执行必要的操作。
样本用法:
IPoller poller = new UrlPoller(args[0], TimeSpan.FromSeconds(7));
IPolling pollingComponent = new Polling.Core.Polling(poller);
pollingComponent.SubscribeForPollingUpdates(PollingAction);
pollingComponent.Start();
有关代码和完整示例,请参阅: