0

비동기 ASPX 페이지에서 n 개의 비동기 웹 서비스 호출을해야합니다.비동기 ASP.NET 페이지에서 여러 순차 비동기 웹 서비스 호출?

각 WS 호출은 2 진 파일의 일부를 검색합니다. 코드는 파일 블록을 페이지의 응답 스트림으로 출력합니다.

offset = 0; 
blocksize = 1024; 
output = getFileBlock(path, offset, blocksize); 

//BinaryWrite output to Response 

offset += blocksize; 
output = getFileBlock(path, offset, blocksize); 

//BinaryWrite output to Response 

//etc... 

각 getFileBlock은 비동기로 만들고 싶은 웹 서비스 호출입니다. 그러나 이러한 호출이 특정 순서로 발생해야합니다.

제안 사항은 어떻게 구현합니까?

답변

0

비동기 기능을 호출하십시오. 비동기 완료 핸들러에서 결과를 출력하고 더 많은 데이터가 여전히 필요하면 async 함수를 다시 호출하십시오.

public class Answer 
{ 
    int _offset = 0; 
    const int blocksize = 1024; 
    string _path; 

    static int main() 
    { 
    Init(); 
    getFileBlock(_path, _offset, _blocksize); 
    } 
    void function Init() 
    { 
    _path = "c:\foo.dat"; 
    CompletionEvent += HandleCompletion; 
    getFileBlock(_path, _offset, _blocksize); 
    } 

    void function HandleCompletion(object sender, CompletionEventArgs e) 
    { 
    OutputResult(e.Result); 
    _offset += blocksize; 
    if (_offset < limit) 
    { 
     getFileBlock(_path, _offset, _blocksize); 
    } 
    } 
} 
+0

필립 - ASP.NET 비동기 페이지에서이 함수를 호출합니다. 따라서 main()이 없습니다. ASP.NET에서이 작업이 어떻게 수행 될지 궁금합니다. – frankadelic

+0

코드가 주어진다는 것을 나타내는 방법으로 Init()를 호출 한 다음 async 함수 getFileBlock()을 호출하기 위해 main()을 추가했습니다. ASP.Net 페이지에서 해당 코드를 호출 할 수 있습니다. –

관련 문제