ASP.Net / C#4.5 - 异步处理 - 异步等待

时间:2013-03-17 06:23:24

标签: c# asp.net asynchronous async-await

我正在寻找一些关于我应该采用的最佳路线的方向。我已经发布了几次,取消了一些推荐的设计模式。根据我想要完成的事情,我还没有真正得到好的方向。我是Asrea Processing的新手,我很欣赏一些正确的方向。到目前为止,在我以前的一篇文章中,我被称为无知因为我请求了代码示例。请理解我一直在阅读所有内容,并尝试在互联网上找到的所有内容。毋庸置疑,我有很多不同的方向,我不知道哪一方是最好的。

我将在高层解释我想要做的事情,如果那里的任何人都可以通过指导我朝正确的方向帮助我,我会很感激。此外,如果有人能指出我的代码示例,我会很喜欢。我不介意阅读这些材料,但如果我能看到代码跟随它所说的话,那就更有意义了。我发现的大多数文档都有代码示例或部分代码示例,我一直尽力尝试使用我发现的工作来满足我的特定需求。到目前为止,运气不大。我承认,当谈到ASYNC处理时,我想我是无知的。 :)

无论如何,这是我想要完成的。我遗漏了我可能会考虑使用的任何特定技术,以避免关于我发布的内容是否过时或落后于时间的辩论。我正朝着正确的方向寻找一个观点,我对这一点持开放态度。我只需要让它工作。

以下是我需要做的基础知识

  1. 我正在使用ASP.Net网站“Project”。
  2. 我有一个用于使用Active Reports 7打印报告的屏幕。
  3. 我的任务是允许用户点击“打印/预览”按钮并启动报告处理。
  4. 在报告运行时,我需要让用户点击“取消”按钮并终止处理并返回到报告屏幕。 (因此,在报告处理过程中,UI需要响应,因此用户可以单击取消按钮。)
  5. 在处理报告时,我需要显示一条弹出消息,指示报告正在运行。
  6. 当报告完成处理时,我需要隐藏此弹出消息,以向用户指示报告已完成。然后我需要打开报告以供用户查看。目前,这是一个javascript函数,我们在报表处理代码中准备,打开一个新窗口并调用报表查看器。 (因此,在报告完成后,我需要能够调用javascript函数。)
  7. 如果有人能指出我正确的方向,我将非常感激。我不介意做腿部工作和阅读大量的文档。我只需要能够知道我正在看什么将为我提供上述功能。就像我之前说过的,无知与否,如果我能得到一些示例工作代码(不要求任何人为我编写代码,只需要一些代码我可以逐步完成并帮助理解正在发生的事情)它会有很大帮助。

    提前感谢您的时间和考虑。

1 个答案:

答案 0 :(得分:1)

由于您希望在服务器端执行某些操作以及UI响应并显示进度。显示事件的进展。我建议使用Signalr.Net。

http://signalr.net/

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

这是一个实时的web api,你可以创建一个具有“ProcessReport”和“cancelProcessing”功能的集线器,你可以在点击按钮打开连接时用javascript调用它,并显示进度弹出窗口取消按钮。在js中向集线器注册客户端事件说“updatestatus”,一旦操作完成,可以从服务器调用以关闭弹出窗口并最终关闭信号器连接。类似地,在弹出取消单击中,您可以再次调用集线器功能cancelProcessing并执行取消并使用updateStatus回调。

希望这有帮助。