Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net net程序的终止_.net_Vb.net - Fatal编程技术网

.net net程序的终止

.net net程序的终止,.net,vb.net,.net,Vb.net,我有一个用vb.net编写的应用程序。当应用程序启动时,它会联机连接到mysql数据库以获取一些数据,一旦完成,它就会继续运行 问题是有时候它会被mysql卡住,我的意思是在请求之后什么也没有发生,这会导致我的程序锁定。这可能是因为互联网问题或服务器 是否有一种方法可以让程序确定x秒已经过去,但它没有任何数据,因此自行终止它。我尝试使用计时器来执行此操作,但当程序请求数据时,它会被卡住,我的意思是它会锁定,因此计时器也会锁定,只有在任务完成后,所有内容才会恢复 我希望当程序即将启动请求时,我可以

我有一个用vb.net编写的应用程序。当应用程序启动时,它会联机连接到mysql数据库以获取一些数据,一旦完成,它就会继续运行

问题是有时候它会被mysql卡住,我的意思是在请求之后什么也没有发生,这会导致我的程序锁定。这可能是因为互联网问题或服务器

是否有一种方法可以让程序确定x秒已经过去,但它没有任何数据,因此自行终止它。我尝试使用计时器来执行此操作,但当程序请求数据时,它会被卡住,我的意思是它会锁定,因此计时器也会锁定,只有在任务完成后,所有内容才会恢复

我希望当程序即将启动请求时,我可以启动一个计时器并确定x秒已经过去,所以现在终止应用程序

请告诉我怎么做

谢谢

干杯,
Greatchap

是的,你可以像你说的那样,使用计时器,在一段时间后强制退出应用程序。但是,如果您在MySqlConnection上设置超时,则更有意义

MySqlConnection.ConnectionTimeout
是在您的案例中执行此操作的地方


如果因为某种原因你必须杀了它。您可以使用
Process.GetCurrentProcess().Kill()
作为计时器。

您不能为mySql连接字符串添加超时吗?那么这至少会在你的线程中生成一个异常来恢复处理。好吧,如果你唯一的恢复选项是结束进程,那么你可以启动另一个线程,用你的超时等待自动恢复事件。如果数据库响应,则发出事件信号,在线程中,如果发出信号,则退出。如果autoResetEvent等待超时,则调用Environment.Exit(1);System.Threading.Timer可以。默认情况下,mysql连接超时设置为15。这似乎还可以,但我不认为它的工作方式应该。出了什么问题?你有没有试着把它降低到几秒钟,但它没有超时?不确定还有什么会锁定你的应用程序并杀死它,这看起来相当激烈。问题是定时器在线程中一次也不能工作。另外,当mysql运行时,应用程序会锁定,因此计时器不起作用。按如下方式设置计时器:计时器计时器=新计时器(x=>Process.GetCurrentProcess().Kill(),null,new TimeSpan(0,0,2),TimeSpan.FromHours(24));这是C#但VB类似于“Dim timer as timer=”。我学VB已经太久了。我知道如何在VB.net中插入和使用计时器。但问题是,当我的程序启动mysql命令时,应用程序会锁定,计时器不起作用。只有在mysql进程完成后,计时器才会恢复。