如何异步调用任何c#代码(函数、web引用、API调用)



我曾尝试研究如何在c#中异步调用任何方法的问题,但它无法通过查询回答,所以让我问它吧。

我正在访问代码中的一个web引用,它基本上调用了一个名为ExportDataset的函数。

DataSet dsUsers = serviceOws.ExportDatasetAsync("test012", "<parameters></parameters>");

这个位的问题是大约需要30秒才能获取记录。我根本无法更改网络参考代码,因为我没有访问权限。发生这种情况时,我的页面根本无法加载。

当我的页面加载时,有什么方法可以异步调用这个函数吗?我的项目目标是.NET框架4.6.1

您可以使用Task t = new Task(() => MyLongRunningOperation())将同步调用封装在Task中,但这不会加快页面呈现速度,因为在发送页面内容之前,它仍需要等待该任务完成。如果你真的想让这样一个长时间运行的操作"无缝地"工作,你需要在一个单独的API或其他东西中公开这个调用,并通过AJAX加载它。

最新更新