C# asp.net mvc在ActionResult中多次循环后不执行任何操作

C# asp.net mvc在ActionResult中多次循环后不执行任何操作,c#,asp.net-mvc,asp.net-mvc-4,genetic-algorithm,C#,Asp.net Mvc,Asp.net Mvc 4,Genetic Algorithm,我正在研究遗传算法的实现 我使用ASP.NET MVC4 web应用程序编写代码 输入用户: 可用出租车数量 最大生成 最大收敛 根据测试,如果用户输入的可用出租车数量少于30辆,最大生成量少于100辆,那么我的代码就可以正常工作 问题是:如果用户输入超过上述条件,那么我的代码只在18-40次迭代循环中工作,然后它什么也不做 有人能告诉我怎么解决这个问题吗? 我做了一些与这个问题相关的研究,答案是在控制器中添加异步,但是没有帮助,我的问题仍然存在 以下是我的总体控制器工作流程: [Htt

我正在研究遗传算法的实现 我使用ASP.NET MVC4 web应用程序编写代码

输入用户:

  • 可用出租车数量
  • 最大生成
  • 最大收敛
  • 根据测试,如果用户输入的可用出租车数量少于30辆,最大生成量少于100辆,那么我的代码就可以正常工作

    问题是:如果用户输入超过上述条件,那么我的代码只在18-40次迭代循环中工作,然后它什么也不做

    有人能告诉我怎么解决这个问题吗? 我做了一些与这个问题相关的研究,答案是在控制器中添加异步,但是没有帮助,我的问题仍然存在

    以下是我的总体控制器工作流程:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Index(ProsesGADTO dto)
        {
          if (ModelState.IsValid)
            {
                - Some Genetic Algorithm Process
    
                    while (maxGeneration > countGeneration && checkConvergence < maxConvergence)
                    {
                        countGeneration++;
                        - Extended genetic algorithm process
    
                    }
    
                 return RedirectToAction("HasilGA");
            }
            else return RedirectToAction("Index");
        }
    
    [HttpPost]
    [ValidateAntiForgeryToken]
    公共异步任务索引(ProsesGADTO dto)
    {
    if(ModelState.IsValid)
    {
    -一些遗传算法过程
    while(maxGeneration>countGeneration&&checkConvergence
    我编辑了这个问题,使它更简单。
    最后的实现没有使用异步。

    代码中有一个无限循环。您需要找出为什么它永远不满足退出该循环的条件。

    您所说的“然后它什么都不做”是什么意思?它是退出方法还是挂起?你怎么能说它什么也没做?@AndriiLitvinov yep hang也许,我在代码中做了一个断点,在visual studio调试18次迭代后,进程没有在断点处暂停。尝试在操作中写入日志,看看它停止了什么。在方法的开头和结尾以及主要代码块内编写日志。而且症状类似于死锁。也许你可以发布你的解决方案?为什么需要任务延迟?@AndriiLitvinov错误日志或?我需要这样记录吗?对不起,我是c#编程新手。我真的不需要task.delay,我只是遇到了同样的问题,他们使用task.delay修复了它,所以我也尝试了,但没有成功。例如,你可以设置NLog以登录到文件。您的算法中还有其他异步操作吗?试着注释掉你算法中的一些块,以缩小问题的范围。还可以尝试在控制台应用程序项目中运行,看看它是否有任何不同。