如何在VB.NET中等待MySQL更新?

如何在VB.NET中等待MySQL更新?,mysql,vb.net,Mysql,Vb.net,我一直在做一些检查MySQL数据库的工作,以检查一些东西-但是程序停止响应,因为它不断地检查数据库。是否可以让它等待几秒钟重新检查数据库?我尝试过sleep(),但它出现了一个奇怪的错误: 对PInvoke函数的调用 “游戏!WindowsApplication1.Form1::Sleep'已使 堆栈这可能是因为托管PInvoke签名 不匹配 非托管目标签名。检查呼叫约定是否正确 以及 PInvoke签名与目标非托管签名匹配 我已经研究了很长一段时间了,我现在处于困境。我确实需要经常检查MySQ

我一直在做一些检查MySQL数据库的工作,以检查一些东西-但是程序停止响应,因为它不断地检查数据库。是否可以让它等待几秒钟重新检查数据库?我尝试过sleep(),但它出现了一个奇怪的错误:

对PInvoke函数的调用 “游戏!WindowsApplication1.Form1::Sleep'已使 堆栈这可能是因为托管PInvoke签名 不匹配 非托管目标签名。检查呼叫约定是否正确 以及 PInvoke签名与目标非托管签名匹配

我已经研究了很长一段时间了,我现在处于困境。我确实需要经常检查MySQL数据库。我尝试在再次检查之前刷新web浏览器,但它开始延迟应用程序

代码:


尝试从单独的线程执行检查。尝试将BackgroundWorker拖到表单上,并将您的签入到表单中,以使您的程序更具响应性。不过,我以前从未见过这种错误。是System.Threading.Thread.Sleep()还是VB特有的

看看你的代码,看起来你有无限的递归。这将导致堆栈溢出。。。试一试

while(true)
'SQL code
end

尝试从单独的线程执行检查。尝试将BackgroundWorker拖到表单上,并将您的签入到表单中,以使您的程序更具响应性。不过,我以前从未见过这种错误。是System.Threading.Thread.Sleep()还是VB特有的

看看你的代码,看起来你有无限的递归。这将导致堆栈溢出。。。试一试

while(true)
'SQL code
end

您的代码示例显示了一个没有基本大小写的递归函数。其结果总是堆栈溢出(在.Net中是不可修补的异常)


不要从函数本身调用updateit()函数。相反,只需编写一个循环来反复调用它。

您的代码示例显示了一个没有基本大小写的递归函数。其结果总是堆栈溢出(在.Net中是不可修补的异常)


不要从函数本身调用updateit()函数。相反,只需编写一个循环来反复调用它。

当我执行循环时,程序仍会停止响应,这正是我试图避免的。您需要将代码放在另一个线程中。尝试使用BackgroundWorkerIt听起来像是在使用Visual Studio。在窗体设计器的工具箱中,您应该在“所有windows窗体”下找到BackgroundWorker。创建一个“DoWork”事件处理程序并将代码放入其中。要启动后台工作程序,请在后台工作程序实例(例如:backgroundworker1.RunWorkerAsync())上调用“RunWorkerAsync”,谢谢,但是,我还有一个错误-我收到一个错误,说“跨线程操作无效:控件“Form1”是从创建它的线程以外的线程访问的。它是可修复的吗?不能从创建表单元素的线程以外的线程更新表单元素。这意味着您必须找到一种方法来更新主线程上的UI。您可能会在这里找到一些有用的建议:当我执行循环时,程序仍会停止响应,这正是我试图避免的。您需要将代码放在另一个线程中。尝试使用BackgroundWorkerIt听起来像是在使用Visual Studio。在窗体设计器的工具箱中,您应该在“所有windows窗体”下找到BackgroundWorker。创建一个“DoWork”事件处理程序并将代码放入其中。要启动后台工作程序,请在后台工作程序实例(例如:backgroundworker1.RunWorkerAsync())上调用“RunWorkerAsync”,谢谢,但是,我还有一个错误-我收到一个错误,说“跨线程操作无效:控件“Form1”是从创建它的线程以外的线程访问的。它是可修复的吗?不能从创建表单元素的线程以外的线程更新表单元素。这意味着您必须找到一种方法来更新主线程上的UI。您可以在这里找到一些有用的建议: