2012-07-12 4 views
0

기본적으로 사용자가 SQL Server 2008 데이터베이스에서 데이터를 검색하고 업데이트/조작 할 수있는 vb.net 4.0 UI가 있습니다. 데이터베이스와의 모든 통신은 저장된 procs를 통해 수행됩니다. 업데이트 procs 중 하나가 처리하는 데 최대 6 분이 걸릴 수 있습니다 - 현재 사용자는 업데이트가 완료 될 때까지 "processing ..."메시지를 보았고 결과가 표시됩니다..net 4.0 UI에서 백그라운드 작업을 실행하는 옵션

저는 이것이 배경 작업에 좋은 후보라고 생각합니다. 사용자가 요청을 호출 한 다음 UI에서 다른 작업을 계속할 수 있기를 바랍니다. 작업이 끝나면 결과를 알립니다. 스레딩으로이 작업을 수행 할 수 있습니까? 나는 실을 꿰기에 새로울 것이나 몇몇 문학 및보기 또는 2를 나 자신의 방법에 줄 수 있었다. 인터넷 검색을 한 적이 있지만 예제에서 작업이 실행되는 동안 사용자가 UI에서 계속 작업 할 수 있는지 여부는 명확하지 않습니다. 내가 설명한 것을 성취 할 수있는 다른 옵션이 있습니까?

감사합니다.

답변

1

백그라운드 작업을 실행하는 데는 여러 가지 옵션이 있지만 .net 4.0에서는 가장 간단한 방법으로 TPL (Task Parallel Library)을 사용하는 것이 좋습니다. 다음과 같이 백그라운드 작업을 실행할 수 있습니다.

Task.Factory.StartNew(()=>SomeMethod()); 

세부 정보는 여기에서 찾을 수 있습니다.

http://msdn.microsoft.com/en-us/library/dd460717.aspx

는이 호출에서 반환하는 모든 UI 업데이트를 수행해야하는 경우, 당신은 UI 스레드에게 그것을 다시 파견해야한다는,하지만 기억하십시오.

또한 TPL에는 Dispatcher 스레드에서 연속을 실행하는 메커니즘이 있습니다.

백그라운드 작업이 실행 중이지만 UI 스레드는 차단되지 않습니다.

+0

좋은 물건, 고마워! – Violet

관련 문제