作者aluuser (我的天空)
看板C_Sharp
标题Re: [问题] 2005上遇到的Thread问题...
时间Sun Oct 26 12:48:11 2008
我最近也碰到类似问题
在vs 2005 上写一个视窗表单程式(一开始执行就做Form_Load)
内涵一个跟text.txt比对的动作 可是由於.txt档资料庞大
故加入一个thread 让他不会影响到使用者操作的流畅度
可是却出现 'NotSupportedException'这个例外处理不知如何解决?
以下为大略写法
private void Form_Load()
{
string s1;
Thread thread1;
textbox1.text = " ";
thread1 = new Thread(new ThreadStart(compare()))
thread1.Start();
//以下省略
}
private void compare()
{
s1=a; //这边有错,我必须在这个方法里再宣告一次字串变数
if(....)
{
textbox1.text = "123"; //这边出现NotSupportedException的例外错误
}
if(....)
{
textbox1.text = "456"; //这边出现NotSupportedException的例外错误
}
}
这是不是跟invoke有关? 观念模糊不知如何改写..
不知道这个是错在哪 请板上先进给予小弟一点提示
谢谢
※ 引述《NEWGAME (刘阿隆)》之铭言:
: 我在VS 2005.NET上写个application的程式
: 我在Form上拉了一个textBox
: 程式码写了一个thread要处理textBox的内容时
: 发生了"跨执行绪的错误",所以无法对textBox存取。
: 之前在2003上写相同程式码时都不会有这错误
: 请问各位大师们
: 能给小弟一点提示吗??
: 谢谢^^
--
※ 编辑: aluuser 来自: 218.166.65.109 (10/26 13:42)
1F:→ q110185:试试backgroundWoker + reportProgress 10/26 16:20
2F:→ CafeKing:thread 不能直接对控制项取值,用delegate+invoke来传递 10/26 23:25
3F:→ horngsh:推2F 10/27 13:30