2011-09-03 7 views
0

저는 뭔가를 확인하기 위해 MySQL 데이터베이스를 검사하는 작업을하고 있습니다. 그러나 프로그램이 데이터베이스를 계속 검사하기 때문에 응답하지 않습니다. 데이터베이스를 다시 검사하는 데 몇 초 정도 기다릴 수 있습니까? 나는 잠을 시도()하지만 이상한 오류를주고있다 : 나는 꽤 오랫동안이로 찾고있다 그리고 내가 곤경에 오전VB.NET에서 MySQL을 업데이트하는 방법

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.

. 나는 자주 확인하기 위해 MySQL 데이터베이스가 필요합니다. 다시 확인하기 전에 웹 브라우저를 새로 고쳐 보았습니다.하지만 응용 프로그램의 지연이 시작되었습니다.

코드 :

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

updateit() 
+2

코드를 게시하십시오. –

답변

1

는 별도의 스레드에서 검사를 수행하십시오. BackgroundWorker를 양식에 끌어다 놓은 다음 프로그램을 응답 성있게 만들기 위해 체크를하십시오. 나는 전에 그 오류를 본 적이 없어요. 그것 System.Threading.Thread.Sleep() 또는 뭔가 VB 특정 있습니까?

코드를 보면 무한 재귀가있는 것처럼 보입니다. 그러면 스택 오버플로가 발생할 것입니다 ... 시도하십시오

while(true) 
'SQL code 
end 
+0

루프를 수행 할 때 프로그램이 계속 응답하지 않습니다. 즉 피하려고하는 프로그램입니다. – alex

+0

코드를 다른 스레드에 넣어야합니다. BackgroundWorker를 사용 해보십시오. – rotard

+0

이전에는 해본 적이 없으니 지침을 주시겠습니까? – alex

2

코드 예제에서는 기본 대/소문자가없는 재귀 함수를 보여줍니다. 그 결과는 항상 스택 오버플로 (.Net의 uncatchable exception)입니다.

함수 자체에서 updateit() 함수를 호출하지 마십시오. 대신 루프를 반복해서 반복해서 작성하십시오.

관련 문제