2014-03-24 2 views
1

내가 비동기 작업 실행을 실행이 기능을 가지고 반환 결과

public bool CheckNetworkDrive(string drive) 
{ 
    var task = new Task<bool>(() => { return CheckNetworkDriveMethod(drive); }); 

    task.Start(); 

    //make async call to check network path to avoid lock in case of not exist 
    if (task.Wait(5000) && task.Result) 
     return true; 
    return false; 
} 

로컬 호스트 모두에서 잘 작동하는 웹 정원에서 비동기 작업을 실행하지만 webgarden 보인다되지 자사에서 일을 나는 알아낼 수 없습니다 정확한 이유, 그래서 당신은 도움이나 대안을 제안 할 수 있습니다!

ps, ​​검사 방법은 네트워크 경로를 확인합니다. 응답이없는 경우 전체 코드를 차단하므로 화재 및 비동기 대기 메소드가 필요합니다.

+0

을 도왔이 정확히 어떻게 작동하지 않습니다 발견? 그것은 무엇을 하는가? – svick

+0

네트워크 경로의 디렉토리를 확인합니다. 존재한다면, 네트워크 드라이브가 준비되지 않은 경우 5 초 동안 응답을 기다리고 준비가되지 않았다고 가정합니다. –

+0

게시자가 게시 한 코드와 관련이없는 'CheckNetworkDriveMethod()'메서드의 문제와 비슷합니다. – svick

답변

1

불편을 끼쳐 드려 죄송합니다. 특히 병렬 작업과 관련된 문제가 아니라는 것을 알았습니다. 네트워크 ID를 사용하여 네트워크 드라이브에 액세스하는 것으로 보입니다. 은 가장을 잃었습니다. 모든 일을 잘 처리 한 사용자를 가장합니다.

나는

How do I set the user identity for tasks when calling Task.WaitAll()