简体   繁体   中英

How to wait for MySQL To Update in VB.NET?

I have been working on something that checks an MySQL Database to check something - however the program stops responding because it is constantly checking the database. Is it possible to have it wait a few seconds to recheck the database? I have tried sleep() but it is giving a strange error:

A call to PInvoke function 'Game!WindowsApplication1.Form1::Sleep' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

I have been looking into this for quite a while and i am in a predicament. I do need the MySQL databases to be checked very often. I tried making a web browser refresh before checking it again - but it started to lag the application.

Code:

 function updateit()
 ' SQL Code goes here, it succeeds.
 updateit() ' Update it again.
 return true
 end

 updateit()

Your code example shows a recursive function with no base case. The result of that is always a stack overflow (an uncatchable exception in .Net).

Don't call your updateit() function from within the function itself. Instead, just write a loop to call it over and over.

Try doing your checks from a separate thread. Try dragging a BackgroundWorker onto your form and putting your check in that to make your program more responsive. I've never seen that error before though. Is it System.Threading.Thread.Sleep() or something specific to VB?

Looking at your code it looks like you've got infinite recursion. That will cause a stackoverflow... try

while(true)
'SQL code
end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM