upDateStateDelegate是要执行的委托我们前面有定义
ExecDateDiff计算时间差的方法自己写的如下代码
///
复制代码
注意,大家一定要记着这里的类型要和委托的类型是一样的,否则为出错,而且它不会自动转化,如果你定义的是String,传的是int是不可以的, 要手动的去转,这点请大家注意一下。
dgvrowid启动线程所在DataGridview行,一行是一个线程的变化情况
"总用时(毫秒)" 列名,这里是为了方便 大家看,使用的汉语大家见谅。
6.启动线程,我们只要执行一个For就可以循环启动了,大家一起来看看方法吧,
private void button3_Click(object sender, EventArgs e) { int count = Convert.ToInt32(txtCount.Text.Trim()); int number = Convert.ToInt32(txtNumber.Text.Trim()); CreateTable(count + 1); //开启number个线程 for (int i = 0; i < count; i++) { Thread pingTask = new Thread(new ThreadStart(delegate { PingTask(i, number); })); pingTask.Start(); Thread.Sleep(100); } }
复制代码
我们都知道线程是不能直接传参数的,只能传Object,但使用匿名委托就可以解决 这个问题,方法如上面,大家看不明白的可以留言给我。
Thread.Sleep(100); 是为了让线程正常启动做了一个时间间隔。
大家可以根据自己的情况调整
其实这个例子不但可以实现这样测试,大家还可以用来访问数据库,开上几千个线程,看看你的Sql代码访问速度有多快。
个人感觉很不错的一种压力测试方法
希望大家多提提建议哦