【问题标题】:Loop is doesn't complete properly in C#循环在 C# 中未正确完成
【发布时间】:2018-03-03 15:29:24
【问题描述】:

我有一个 ASP.NET MVC 项目。在按钮单击事件之后,我调用了一个方法。但是这种方法不能正常工作。它的完成必须至少需要 2 分钟,但它会在 10 秒内完成。

这是我的代码:

public ActionResult TavMethod()
{
        ResetAttributes();
        ArdistirmaSayisi = 200;
        Alfa = 0.99;
        Sicaklik = 50;

        while (this.Sicaklik>1)
        {
            while (ArdistirmaSayisi > 0)
            {
                ArdistirmaSayisi--;
            }

            this.Sicaklik = this.Sicaklik * Alfa;
        }

        return View(Tuple.Create(MakinaIslerEniyi, WorkProcess.CmakeMS));
}

【问题讨论】:

  • 你能解释一下你想在这里做什么吗?如果你想插入一个延迟,你有比这段代码更好的选择。
  • 为什么你认为这需要 2 分钟?顺便说一句:内部循环只执行一次。
  • while (ArdistirmaSayisi > 0) {ArdistirmaSayisi--;} 的意义何在?只是为了浪费一些CPU?
  • @Nisanur 现在您正在讨论上面未显示的代码。真的,没有minimal reproducible example,很难帮到你。
  • 您到底为什么要阻止服务器上的线程 2 分钟?

标签: c# loops asp.net-mvc-4 while-loop


【解决方案1】:

如果你确定要暂停 2 分钟,为什么不使用 Thread.Sleep 之类的东西

示例(暂停 10 秒)

System.Threading.Thread.Sleep( 10000 );//10 seconds
//Other logic
return View(Tuple.Create(MakinaIslerEniyi, WorkProcess.CmakeMS));

【讨论】:

  • 谢谢,我不想暂停.. 只是我知道这个代码块需要很长时间。但它在 10 秒内完成.. 我解决了我的问题..
猜你喜欢
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
  • 2020-11-27
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多