我正在使用 Timer 控件,我想将间隔设置为等于 ListBox 中对象的 Proc_BurstTime。我不知道我该怎么做。
问题是,我在 ListBox 中有多个不同的对象;我想要做的是让程序遍历列表中每个对象的 Proc_BurstTime。
例如,我有一个 ProgressBar。ListBox 中有 5 个东西具有这些 Proc_BurstTime 值(以 ms 为单位): 5000 4000 1000 7000 2000 程序应该转到 ListBox 中的第一个对象,将进度条设置为“加载”X 秒(Proc_BurstTime)。第一个是5000毫秒(5秒),进度条会在5秒内从0到100,完成后会进入下一个,4000毫秒;依此类推。
我的问题是这样的:
timer1.Interval = initial_ProcessList.Items[0].Proc_BurstTime;
这是我得到的错误
*'object' does not contain a definition for 'Proc_BurstTime' 并且没有扩展方法 'Proc_BurstTime' 接受类型为 'object' 的第一个参数(您是否缺少 using 指令或程序集引用? )*
这是我的结构和初始化:
struct process
{
public int Proc_Id;
public int Proc_BurstTime;
public int Proc_Priority;
public override string ToString()
{
return "ID: " + Proc_Id.ToString() + " Time: " + Proc_BurstTime.ToString() + " Prior: " + Proc_Priority.ToString();
}
};
readonly process[] ProcessList = new process[]
{
new process{ Proc_Id = 1, Proc_BurstTime = 5000, Proc_Priority = 1},
new process{ Proc_Id = 2, Proc_BurstTime = 4000, Proc_Priority = 2},
new process{ Proc_Id = 3, Proc_BurstTime = 1000, Proc_Priority = 3},
new process{ Proc_Id = 4, Proc_BurstTime = 7000, Proc_Priority = 4},
new process{ Proc_Id = 5, Proc_BurstTime = 2000, Proc_Priority = 5}
};
这就是我向 ListBox 添加内容的方式:
private void Form1_Load(object sender, EventArgs e)
{
foreach (var p in ProcessList)
{
initial_ProcessList.Items.Add(p);
}
}