0

我需要从异步 ASPX 页面进行 n 次异步 Web 服务调用。

每个 WS 调用都会检索二进制文件的一部分。然后代码将文件块输出到页面的响应流。

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 都是一个 Web 服务调用,我想使其异步。但是,我需要这些调用以特定顺序发生。

有什么建议如何实施吗?

4

1 回答 1

0

调用异步函数。在异步完成处理程序中,输出结果,如果您还需要更多数据,请再次调用异步函数。

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);
    }
  } 
}
于 2009-10-08T02:00:13.330 回答