2011-02-03 2 views
0

일부 작업 ...프로그램 잠금 내가 복원 지점을 만들 수있는 옵션을 가진 프로그램이

이 이 이

가 내 문제가 이렇게 그것을 클릭하면, 프로그램이 그냥 고정하는 것이이 끝났어 때까지를 수행 할 때 복원 지점을 만듭니다.

내가 프로그램에 별도의 양식을 넣어하고 그것이 내가 다운로드 한 움직이는 진행률 표시 줄 컨트롤을 가지고, 그래서 생각은 ...

사용자

frmRestore.show를 "복원 지점을 만들기"클릭 복원 지점은 당신이 복원 지점을 양식 쇼를 만들 클릭하고 프로그램이 그냥 고정 할 때 일이,의를 onces있다 frmRestore.hide

을 수행 이 복원 지점을 생성하는 동안 움직이는 진행률 표시 줄은 끝이 복원 지점이 생성됨 전자 양식이 다시 숨 깁니다.

이 문제는 배경 작업자가 해결할 수 있습니까? 솔직히 말해서 나는 그것이 무엇을하는지 완전히 확신하지는 않는다. 나는 컨트롤을 가지고 주변을 비웃었지만 아무 것도 발견하지 못했다.

감사합니다.

답변

1

복원 절차를 별도의 스레드에 넣어야합니다. 프로그램이 멀티 스레드가 아닌 경우 선형 및 잠금 기능을 수행하여 작업이 완료 될 때까지 잠급니다.

+0

모든 답장을 보내 주셔서 감사합니다 ... 저는 VB.NET의 전문가가 아니므로 새 스레드를 어떻게 사용합니까? 또는 프로그램을 멀티 스레드로 만드는 방법. – Coozbiscuit

+0

VB.NET에서이를 수행하는 방법을 잘 모르겠지만 쉽습니다.C에서 # 스레드 myThread = 새로운 스레드 (프로 시저 이름); 그런 다음 원하는 언제든지 해당 스레드를 시작하거나 중지 할 수 있습니다. – sed

+0

이 링크를 확인해야합니다. http://support.microsoft.com/kb/315577 – sed

1

주 스레드에서 집중적으로 수행하고 있기 때문에 프로그램이 잠겨 있습니다.

그것은 GUI 응용 프로그램에서 다음과 같이 간다

:

//

//이

// 몇 가지 물건을

// 응답 GUI 시스템에 대응하고 다시 그리기 물건을 시스템에 다시 그리기 gui

그리고 "차단할 때 몇 가지 물건"프로그램은 응답 할 수 없으며 일부 물건을 할 때까지 GUI를 다시 그릴 수 없을 것입니다 .

당신이해야 할 일은 보조 스레드를 사용하거나 말한 것처럼 배경 작업자를 사용하는 것입니다. 스레드는 시스템 또는 GUI를 차단하지 않고 그 안에 물건을 할 수있는, 같은입니다

희망이 내가 심각하게 VB를 사용한 적이

0

을하는 데 도움이,하지만 같은 개념은 Qt를 (약 호언 장담을 시작에 적용 생각 Qt가 더 좋음).

VB에서 GUI 스레드 또는 하나의 통합 된 하나를 사용하는 경우 확실하지 않지만 GUI 스레드가 "잠금"원인이 아닌 비 GUI 작업을 수행하는 귀하의 문제가 있다고 생각합니다. "잠그다"는 프로그램은 작업이 끝나기를 기다리고 있으며, 따라서 프로그램과 상호 작용할 수 없습니다.

별도의 스레드를 사용하십시오 ...