我需要从异步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服务调用,我想使其异步。但是,我需要按特定顺序进行这些调用。
有任何建议如何实现吗?
答案 0 :(得分: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);
}
}
}