【发布时间】:2016-05-26 08:18:41
【问题描述】:
我从随机大小的数据在内存中生成一些代码。这可以生成类似 15K 的类,甚至更多。代码存储在一个 List 中,我与 CSharpCodeProvider 类中的 CompileAssemblyFromSource 方法一起使用。
问题是,在编译时,我想要一份进度报告,或者可能是正在发生的事情的输出。目前,我的应用程序只是坐在那里等待 5 或 10 分钟。
有没有办法知道这需要多少时间,或者看看发生了什么。也许是另一个想法?我希望答案不仅仅是一条消息,说这个过程可能需要几分钟。
【问题讨论】:
-
将 async/await 与 Task.Run 和 msdn.microsoft.com/en-us/library/…一起使用
-
不可能。您唯一的机会是将源代码拆分为多个文件并分别编译它们。这可以让你倒数文件。使用 15K 类,您将有很多拆分代码的方法:)
-
我喜欢这个主意。这就像在 C 中一样,我将单独编译 list
中的每个字符串,并将它们全部链接以创建一个 DLL。但是,我不确定如何以编程方式做到这一点。 CSharpCodeProvider 只能直接编译成 dll。
标签: c# codedom csharpcodeprovider compileassemblyfromsource