【问题标题】:Increment variable by X every second [closed]每秒将变量增加 X [关闭]
【发布时间】:2013-03-03 06:55:59
【问题描述】:

我卡在代码中的这一部分。 我希望一个 int 变量每秒增加 X 直到(变量

编辑 // 我有一个变量'i'。 我希望它的最大值是.. 280 我想对变量执行增量函数,以便 'i' 的每一秒值增加 1 直到 (i=280)

【问题讨论】:

  • 使用Timer,在Tick事件中添加代码。
  • 使用timerThread.Sleep
  • 你需要更多地了解这个......任何可以理解你的东西。发布代码或您想要的内容
  • 这是一个非常简单的问题,解决方案非常简单。在问问题之前做你的研究。这里有很多类似的问题可以帮助你。
  • 我进行了搜索,但无法找到合适的解决方案...仍然显示错误

标签: c# timer


【解决方案1】:

你想让它成为单线程吗?

int i = 0;
while (i < max)
{
    i++;
    Thread.Sleep(x); // in milliseconds
}

或多线程:

static int i = 0; // class scope

var timer = new Timer { Interval = x }; // in milliseconds
timer.Elapsed += (s,e) =>
    {
        if (++i > max)
            timer.Stop();
    };
timer.Start();

【讨论】:

  • 我尝试使用 Thread.Sleep(x);但它显示“'线程'在上下文中不存在
  • 我没听懂你说什么?
  • @user1371640:在顶部使用System.Threading.Thread.Sleep(x)using System.Threading;。或google :)
  • 我想对图像进行线性变换......并且我想将其保留为动画。我正在为 Windows 8 使用 VS2012
  • 我试过'使用 System.Threading;'但它仍然显示相同的错误
【解决方案2】:

您可以创建一个间隔为 1 秒的 Timer 类的实例(在构造函数中传递 1000),然后注册 Elapsed 事件。在事件处理程序代码中执行您正在尝试的增量。

【讨论】:

    【解决方案3】:

    没有任何上下文,这段代码应该可以完成它的工作:

    for(int i=0; i<280; i++){
        Thread.Sleep(1000);
    }
    

    但是对于 UI 的东西,你应该使用例如一个计时器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 2021-09-24
      • 2020-08-18
      • 1970-01-01
      • 2012-10-02
      相关资源
      最近更新 更多