我有一个应用程序,我在vb.net写的。当应用程序启动时,它连接到mysql数据库联机以获取一些数据,一旦完成它继续。终止一个.net程序
问题是,有时它卡在mysql的东西,我的意思是在请求什么都没有发生后,这导致我的程序锁定。这可能是因为互联网问题或服务器。
有没有一种方法,程序可以确定x秒已经过去,它没有任何数据,所以自己终止它。我尝试使用计时器来执行此操作,但随着程序请求数据,它会卡住,我的意思是锁定,因此计时器也锁定,只有在任务完成后才会恢复。
我希望当程序即将开始请求时,我可以启动一个计时器并确定x秒已经过去,所以现在终止应用程序。
请让我知道我该怎么做?
感谢,
干杯, Greatchap
不能给mySql连接字符串添加超时吗?那么至少应该在你的线程中产生一个异常来恢复处理。 – Tejs 2012-04-19 18:40:18
好吧,如果您拥有的唯一恢复选项是结束进程,则可以启动另一个线程,并在超时时间内等待autoResetEvent。如果数据库响应,则通知该事件,并在该线程中发出信号,直接退出。如果autoResetEvent等待超时,请调用Environment.Exit(1); – 2012-04-19 18:45:21
System.Threading.Timer会做。 – 2012-04-19 18:52:59