所以我想在我的代码中添加一个计时器,使我的vehCount每1.5秒增加1。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace AssignmentCA
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Vehicle.vehCount);
Console.ReadLine();
}
class Vehicle
{
public static int vehCount = 0;
private void spawnVehicle()
{
Timer tm = new Timer();
tm.Interval = 1500;
tm.Elapsed += timerTick;
vehCount++;
tm.Start();
}
private void timerTick(object sender, EventArgs e)
{
vehCount++;
}
}
}
}
在运行之前和运行时从未使用过计时器,但是我得到0,但是它永远不会增加1。我如何实现这一点。
最佳答案
我不太清楚您想做什么,但是您根本没有调用spawnVehicle方法。
这是您所发布内容的解决方案。看看在Vehicle类的静态构造函数上调用了spawnVehicle!为了从静态构造函数调用spawnVehicle,它也必须是静态的。
class Vehicle
{
static Vehicle()
{
spawnVehicle();
}
public static int vehCount = 0;
static void spawnVehicle()
{
Timer tm = new Timer();
tm.Interval = 1500;
tm.Elapsed += (s, e) => vehCount++;
vehCount++;
tm.Start();
}
}