我想在窗体中使用一个Timer控件来记下排序所用的时间,
lblSorted标签显示的总是 “0 秒”,因为在InsertSort()运行期间,
并没有触发Tick事件
请问是什么问题呢?是否需要使用多线程,如果需要哪位能给介绍一篇文档介绍如何使用多线程?
------------------------------------------------------
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnStart;
private System.Windows.Forms.Label lblSorted;
private System.Windows.Forms.Timer timer1;
private System.ComponentModel.IContainer components;
static int time = 0; //用于计时的全局变量 public void InsertSort(int[] list, int ListSize)
{
//此方法的目的是:在程序开始调用InsertSort()方法时,
//动态启动timer1控件,开始计时;并在排序操作完成后关闭timer控件 timer1.Enabled = true; //......此处为排序算法代码 timer.Enabled = false; //此处为用一label控件显示所用的时间
lblSorted.Text = "所用时间为 " + Convert.ToDecimal(time/1000) + " 秒";
lblSorted.Refresh();
} private void btnStart_Click(object sender, System.EventArgs e)
{
//单击该按钮,开始排序
InsertSort(list,Size); //list为数组,Size为其大小
} private void timer1_Tick(object sender, System.EventArgs e)
{
time += timer1.Interval;
}
}
lblSorted标签显示的总是 “0 秒”,因为在InsertSort()运行期间,
并没有触发Tick事件
请问是什么问题呢?是否需要使用多线程,如果需要哪位能给介绍一篇文档介绍如何使用多线程?
------------------------------------------------------
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnStart;
private System.Windows.Forms.Label lblSorted;
private System.Windows.Forms.Timer timer1;
private System.ComponentModel.IContainer components;
static int time = 0; //用于计时的全局变量 public void InsertSort(int[] list, int ListSize)
{
//此方法的目的是:在程序开始调用InsertSort()方法时,
//动态启动timer1控件,开始计时;并在排序操作完成后关闭timer控件 timer1.Enabled = true; //......此处为排序算法代码 timer.Enabled = false; //此处为用一label控件显示所用的时间
lblSorted.Text = "所用时间为 " + Convert.ToDecimal(time/1000) + " 秒";
lblSorted.Refresh();
} private void btnStart_Click(object sender, System.EventArgs e)
{
//单击该按钮,开始排序
InsertSort(list,Size); //list为数组,Size为其大小
} private void timer1_Tick(object sender, System.EventArgs e)
{
time += timer1.Interval;
}
}
解决方案 »
- c#窗口的问题,这个程序不会做,求教
- 请问DataTable执行AcceptChanges应该放在事务处理Commit的前面还是后面?
- 怎么用C#制作一个自动一下一个网站的所有文档,我已近有那个网址了
- System.Diagnostics.Process关于这个东西能否远程打开
- 问一个数据表查询的问题 (oracle).NET
- 求助C#(Winform)获取地址栏后面的参数
- 用StreamReader的方法ReadLine()不能把汉字正确读出来,怎么转换?
- 已知姓名查找主键(id)用什么涵数
- 我的.net在控制台下无法显示汉字怎么办? 谢谢
- 一个简单问题!请教!(急,在线等待)
- 请教关于堆栈问题!
- 高手们请问在C#中如何防止用户修改时间?
用一变量记录开始排序时的时间
排序完和当前时间相比较就可以了吧
我用ljasmine的方法看看,多谢二位了。