我尝试调查How to call any method asynchronously in c#问题,但无法通过查询来回答,所以我还是要问这个问题。
我正在访问代码中的Web参考,该代码基本上调用了称为ExportDataset的函数。
DataSet dsUsers = serviceOws.ExportDatasetAsync("test012", "<parameters></parameters>");
此位的问题是获取记录大约需要30秒。由于我无权访问,因此我根本无法更改网络参考代码。发生这种情况时,我的页面完全无法加载。
在我的页面加载期间,有什么方法可以异步调用此函数吗?我的项目针对.NET Framework 4.6.1
答案 0 :(得分:2)
您可以使用Task
将同步调用包装在Task t = new Task(() => MyLongRunningOperation())
中,但这不会使页面渲染更快,因为在发送页面内容之前它仍将等待该任务完成。如果您确实希望像这样的长时间运行的工作能够“无缝运行”,则需要使用单独的API或其他方式公开此调用,并通过AJAX加载该调用。