线程执行button_Click()

baisun 2006-04-11 04:14:55
private void button1_Click(object sender, System.EventArgs e)
{
label1.Text="csdn";
}
private void timer1_Tick(object sender, System.EventArgs e)
{
Thread ThreadOne=new Thread(new ThreadStart(button1_Click(null,null)));
ThreadOne.Start();
ThreadOne.Abort();
}
这样不太对,如何写?
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzhunter 2006-04-12
  • 打赏
  • 举报
回复
1,线程函数不能有参数,应该使用成员变量传输数据
2, ThreadOne.Start();
ThreadOne.Abort();
根本没意义。刚执行就给中止了

3,怎么能在Timer里创建线程呢?
=========================
解决方法

1。重构ButtonClick,提取其内容成为一个没参数的函数
2。如果有需要传输的参数,请用新设成员变量解决
3。在一个不是频繁发生的事件里创建这个线程(创建线程很耗费资源的)
4.不要刚ThreadOne.Start()就来个ThreadOne.Abort(); 中止放到另外一个事件或按钮中
Knight94 2006-04-12
  • 打赏
  • 举报
回复
要给线程传参数,建议用线程类
baisun 2006-04-12
  • 打赏
  • 举报
回复
因为同时有多个timer,回同时执行,所以。。。
xzhunter 2006-04-12
  • 打赏
  • 举报
回复
不知道你为什么要在timer产生新线程。

难道你想每几毫秒就创建一个线程吗?(至少应该有限定条件的)

线程非常耗费资源,能够少用就少用。

不要用循环之类的方法创建线程。。。

如果你想要同时运行很多线程,可以使用线程池,需要的时候,从线程池取一个线程,用完后在还回去,这样就可以把线程数目限制在比较小的范围之内。
baisun 2006-04-12
  • 打赏
  • 举报
回复
多谢xzhunter(xz) ,在频繁发生的事件里怎么使用线程呢?
Knight94 2006-04-11
  • 打赏
  • 举报
回复
参看
http://blog.csdn.net/knight94/archive/2006/03/16/626584.aspx
iversonkai 2006-04-11
  • 打赏
  • 举报
回复
有必要非用线程执行button_click事件么?
要做什么自己再写个方法岂不是省事的多啊?
linpihong 2006-04-11
  • 打赏
  • 举报
回复
private void timer1_Tick(object sender, System.EventArgs e)
{
button1_Click(null,null);
}
MyLf 2006-04-11
  • 打赏
  • 举报
回复
不知道你要干啥。。。
zlz_212 2006-04-11
  • 打赏
  • 举报
回复
用Delegate可以满足你的要求

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧