2016-08-19 42 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上下文中回答我,那將會更有幫助。

回答