[問題] 在靜態方法Thread中,修改多個label值

看板C_Sharp (C#)作者 (暱 稱)時間13年前 (2012/02/13 17:28), 編輯推噓5(5015)
留言20則, 6人參與, 最新討論串1/1
目前程式碼 Thread t=new Thread(new ThreadStart(method)); t.start(); public static void method() { //do somthing labelxx.Text="xxxx"; } 目前主要是要在method裡面修改多個label 主要就卡在靜態方法中不能存取label 拿來當作thread的方法似乎只能是static? google的一兩個解決方法也看不太懂 似乎是要用 paramaterizedthreadstart 可是怎麼設怎麼傳自己弄了很多方式都不成功 而且這可以用在多個label嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.226.138.31

02/14 01:21, , 1F
建議你把Thread的東西在了解深一點 特別在cross thread
02/14 01:21, 1F

02/14 01:22, , 2F
你看這篇應該就比較能解決你的問題了
02/14 01:22, 2F

02/14 01:22, , 3F
http://ppt.cc/sYZM 余小章大大寫的 蠻清楚的
02/14 01:22, 3F

02/14 01:25, , 4F
物件導向 Java 跟C# 這二個來講 有個東西很重要叫做
02/14 01:25, 4F

02/14 01:25, , 5F
Delegate 我上個禮拜才搞懂他到底在幹麻(我很嫩)
02/14 01:25, 5F

02/14 01:26, , 6F
有需要Delegate文章再跟我說一下 我在私下給你
02/14 01:26, 6F

02/14 03:28, , 7F
為何範例上的thread method 都不用static?
02/14 03:28, 7F

02/14 04:01, , 8F
我把static刪除就會錯誤..
02/14 04:01, 8F

02/14 15:42, , 9F
我覺得你還是去把動態方法跟靜態方法的差別搞清楚再
02/14 15:42, 9F

02/14 15:43, , 10F
研究Thread,學東西還是徹底點比較好
02/14 15:43, 10F

02/14 18:56, , 11F
東西還是從基礎學吧~初學用Timer就很方便了
02/14 18:56, 11F

02/14 20:43, , 12F
應該解決了.. new thread應該要放在contructor裡面
02/14 20:43, 12F

02/14 22:09, , 13F
請使用 BackgroundWorker
02/14 22:09, 13F

02/15 00:50, , 14F
因為我需要跑while(true) background可以達到嗎?
02/15 00:50, 14F

02/15 17:24, , 15F
Java沒Delegate吧?? 我都用runnable說
02/15 17:24, 15F

02/15 17:24, , 16F
沒事別用while(true).... = =
02/15 17:24, 16F

02/15 23:00, , 17F
回LaPass大 ,Java是沒有Delegate這個關鍵字可以用
02/15 23:00, 17F

02/15 23:00, , 18F
但是他背後JVM的運作機制核心概念就是Delegate概念哩
02/15 23:00, 18F

02/15 23:00, , 19F
Java是透過實作介面來達到Delegate的效果
02/15 23:00, 19F

02/16 16:17, , 20F
喔... 懂你的意思了
02/16 16:17, 20F
文章代碼(AID): #1FEDUeFZ (C_Sharp)
文章代碼(AID): #1FEDUeFZ (C_Sharp)