我目前正在尝试创建一个具有主页的应用程序。在这个主页上有一个按钮,它将运行 CPU 密集型代码,然后显示结果。正如我在标题中所述,该应用程序使用的是 ASP.NET 和 C#,而不是我看过的其他一些网站似乎建议的 Windows 窗体。
我对 C# 比较陌生,并且没有在任何其他编程语言中尝试过。我也没有要显示的代码,因为我真的不知道如何进行。
我认为“CPU密集型”是指该过程需要很长时间才能完成?在 Web 应用程序中,任何需要花费大量时间的事情都应该异步完成。在 HTTP 的请求/响应模型中,最好(出于多种原因)快速响应客户端发出的请求。
对于长时间运行的进程,我所说的“异步”并不是指使用 AJAX,因为这仍然是一个请求/响应,就像任何其他的一样。
在这种情况下,我所说的“异步”是指您希望有一个单独的服务器端进程来处理 CPU 密集型任务,而 Web 应用程序只是将任务排队等待运行并检查任务的状态人们寻找它。然后它可以在完成后报告任务的结果。
因此,架构的基本概述将是这样的:
这里要记住的主要是将职责分解为两个应用程序。Web 应用程序的目的是提供用户界面。Web 应用程序不适合长时间运行的后台任务。因此,该责任被转移到更适合该目的的单独应用程序中。这两个应用程序通过共享数据库进行协调。
它可以在服务器上运行 CPU 密集型代码,是的。请注意,这通常会阻止您的 Web 应用程序在合理的时间内发送响应,并且 Web 应用程序可能看起来被冻结了。
您想到了哪种类型的 CPU 密集型代码?有很多方法可以处理这种情况。