Re: [問題] 2005上遇到的Thread問題...

看板C_Sharp (C#)作者 (我的天空)時間17年前 (2008/10/26 12:48), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串3/3 (看更多)
我最近也碰到類似問題 在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)

10/26 16:20, , 1F
試試backgroundWoker + reportProgress
10/26 16:20, 1F

10/26 23:25, , 2F
thread 不能直接對控制項取值,用delegate+invoke來傳遞
10/26 23:25, 2F

10/27 13:30, , 3F
推2F
10/27 13:30, 3F
文章代碼(AID): #190_QDkC (C_Sharp)
文章代碼(AID): #190_QDkC (C_Sharp)