gpt4 book ai didi

c# - CSharpCodeProvider,编译时的进度信息

转载 作者:行者123 更新时间:2023-11-30 18:20:17 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

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

关于c# - CSharpCodeProvider,编译时的进度信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com