2016-08-19 41 views
1

我想在多个线程上并行运行我的z3代码。在我的程序结构中,我首先用所有断言初始化Z3解算器,然后寻求可以满足的解决方案。Microsoft Z3 Dot Net API,克隆求解器

是否有任何方法克隆Z3解算器,以便我可以创建多个克隆并将克隆传递给多个线程?

我的想法是......

Solver slvr1; 
//initialize and add all assertions on solver 1. 
//then create N number of clone solvers. 
//Finally run each solver clone on each thread. 

我可以offcourse创建自己创造我的求解器阵列和在断言过程,他们每个人的断言克隆,但我并不想这样做, ,因为这可能效率不高。

我正在使用dot net API。因此,如果任何人都可以在dot net api上下文中回答我,那将会更有帮助。

回答