| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 820 人关注过本帖
标题:VS2005的线程问题
只看楼主 加入收藏
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:9 
VS2005的线程问题


public void M1()
{
this.Close();
}
public void M2()
{
Form2 obj = new Form2();
obj.ShowDialog();
}

private void button1_Click(object sender, System.EventArgs e)
{
t1 = new Thread(new ThreadStart(M2));
t2 = new Thread(new ThreadStart(M1));
t1.Start();
t2.Start();
}
上面的代码在2003中运行没问题,可到了2005中却出错了,望高手指点一二,谢谢

搜索更多相关主题的帖子: 线程 
2007-03-23 16:25
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
高手们都没空拉?

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2007-03-23 17:08
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
自己再顶一下

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2007-03-23 18:51
IT浪子
Rank: 4
来 自:Nyist
等 级:贵宾
威 望:13
帖 子:402
专家分:20
注 册:2006-11-24
收藏
得分:0 
呵呵,不多见你的
从逻辑上来来说没有问题
我测试了下也没有问题的
不知道你遇到的是什么问题
贴出来吧

你不能让所有人都满意,因为不是所有人都是人!
2007-03-23 22:32
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
M2

这个函数里面一定是有操作控件的代码
2007-03-24 00:59
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
是呀,在05里创建一个线程调用窗体的控件或者窗体本身就会出错,
在03中是可以的,那是怎么会事呀?

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2007-03-24 09:50
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

private void button1_Click(object sender, System.EventArgs e)
{
Thread thread1= new Thread(new ThreadStart(RunsOnWorkerThread);
thread1.Start();
}

private void RunsOnWorkerThread()
{
MethodInvoker mi = new MethodInvoker(MyFuncCanUseControl);
BeginInvoke(mi);
}

public void MyFuncCanUseControl()
{
textBox1.text = "oh, yeah~";
}

2007-03-24 10:29
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

我那时也迷了好久,因为那个BeginInvoke是没有默认弹出修正彩单的,我还以为不是系统函数呢~~

2007-03-24 10:30
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 

嗯,行了
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(RunsOnWorkerThread));
t.Start();
}
private void RunsOnWorkerThread()
{
//MethodInvoker mi = new MethodInvoker(MyFuncCanUseControl);
//BeginInvoke(mi);
Invoke(new EventHandler(MyFuncCanUseControl), new object[] { null, null });

}

public void MyFuncCanUseControl(object sender,EventArgs e)
{
textBox1.Text = "oh, yeah~";
}
不知这种方法你live41的有什么区别


不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2007-03-24 11:28
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
没有,一个样,两者都是调用 Invoke函数,这个应该是this.Invoke吧,应该是窗体的调用函数

具体你找资料吧,呵呵,我也不知道
2007-03-24 13:12
快速回复:VS2005的线程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015446 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved