使用Parallel Linq等系统,可以将匿名函数、查询等的执行拆分到单个机器内的多个内核和线程上。我希望能够使用标准语言结构(如 for 循环(如Parallel.For()
)、值类型(如int
s、struct
s 等)等)将其扩展为在多台机器上运行,并将应用程序源修改保持在最低限度。理想情况下,这将允许我打开一个项目,向方法添加一个属性,然后重新编译以访问增强的功能。
看来我需要一些类似的东西:
捕获已编译的代码块(例如 lambda)并将其传递给在另一个节点上运行的工作进程以及所需的任何数据的能力,或者
提供一个预处理器来捕获有问题的代码,在一种模板项目中编译它,将变量引用等替换为对处理网络通信、缓存和访问任何其他所需资产的类的引用,然后发送生成的 DLL 到其他机器上运行的任何可用工作节点。
Roslyn似乎提供了一些在这里有用的工具。有没有办法连接到当前的编译管道以允许这样做?
编辑
好吧,我知道这是可能的,因为这些人做到了。问题是,如何?