5

在我的多线程 c# 应用程序中使用 Microsoft Solver Foundation 时遇到问题:

我同时运行两个线程,并且在每个线程上我调用这样的函数:

private void exampleFunction()
{
    SolverContext context;
    Model model;

    for(int i=0;i<10;i++)
    {
        context = SolverContext.GetContext();
        model = context.CreateModel();

        //adding decisions, constraints and goal to model

        Solution sol = context.Solve();
        string s = sol.Quality.ToString();//and here sometimes I get that sol is null!
        context.ClearModel();
    }
}

看起来我在每个线程中的上下文都是同一个对象,所以当我调用

context.ClearModel();

在thread1中,那么在thread2中也很清楚(即使thread2中的问题还没有解决)。

那么问题来了:有没有办法在 MSF 中同时解决两个模型?是否可以声明两个不同的 SolverContext?

4

0 回答 0