我正在开发一个ASP.NET应用程序。用户的一个要求是他们能够导出一些UI的Excel。我使用不脆弱学库对它们进行了处理,并向它们提供了它们想要的导出。
然而,他们看到的一些UI是如此复杂,以至于需要大量的时间才能完成(对于web应用程序的体验)。例如,一个出口可能需要几分钟,比如4-5分钟。
我想知道,是否有一种方式,我可以使这个任务异步完成,使用线程,并使其持续时间更短。
发布于 2014-04-10 14:43:07
我怀疑,如果您将线程引入到导出到Excel进程中,那么您现在将遇到两个问题,而不仅仅是一个问题。
您需要深入研究导出代码,最好通过分析器来运行它,这样您就可以知道时间花在哪里了。一旦您知道瓶颈所在,就可以应用正确的技术来解决问题。
将线程抛到未知的问题上,使事情变得更糟的可能性更大。
在研究问题的根源时,可以考虑将导出到Excel进程移动到后台进程,该进程可以独立于用户的会话运行。移动到后台进程不会修复等待时间或用户对事物的感知,但它至少将允许用户在等待导出完成时进行其他工作。
作为布朗医生指出,使用后台线程是释放主线程的一种相当常见的技术。以这种方式使用后台线程通常不会引入与线程导出进程相关的潜在缺陷。而且,您可以将进程移到后台,而无需引入大量(如果有的话)使用异步线程所产生的脑力开销。
https://softwareengineering.stackexchange.com/questions/235533
复制相似问题