2

我从随机大小的数据在内存中生成一些代码。这可以生成类似 15K 的类,甚至更多。代码存储在我与类中的CompileAssemblyFromSource方法一起使用的列表中CSharpCodeProvider

问题是,在编译时,我想要一份进度报告,或者可能是正在发生的事情的输出。目前,我的应用程序只是坐在那里等待 5 或 10 分钟。

有没有办法知道这需要多少时间,或者看看发生了什么。也许是另一个想法?我希望答案不仅仅是一条信息说这个过程可能需要几分钟。

4

1 回答 1

0

据我所知,没有办法在 CodeDOM 或新的 Roslyn 编译器中报告编译进度。我认为支持这是一个合理的请求,因此您可能需要考虑在Roslyn repo提出功能请求。

同时,您可以根据猜测报告进度。您可以根据输入进行猜测(您现在正在编译m千字节的代码,并且编译n千字节通常需要大约t 秒,因此您预计它需要t / n · m秒)或基于最后一次编译, 或两者。

(我还考虑将每个文件编译成一个单独的网络模块,然后将它们组合成一个程序集。这将允许您在每个文件编译后报告进度。但我认为这样做太复杂了,不值得仅仅获得进度报告.)

于 2016-05-26T16:01:27.350 回答