作者kroutony (暱 稱)
看板C_Sharp
標題[問題] 在靜態方法Thread中,修改多個label值
時間Mon Feb 13 17:28:05 2012
目前程式碼
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
1F:推 qwer820404:建議你把Thread的東西在了解深一點 特別在cross thread 02/14 01:21
2F:→ qwer820404:你看這篇應該就比較能解決你的問題了 02/14 01:22
4F:推 qwer820404:物件導向 Java 跟C# 這二個來講 有個東西很重要叫做 02/14 01:25
5F:→ qwer820404:Delegate 我上個禮拜才搞懂他到底在幹麻(我很嫩) 02/14 01:25
6F:→ qwer820404:有需要Delegate文章再跟我說一下 我在私下給你 02/14 01:26
7F:→ kroutony:為何範例上的thread method 都不用static? 02/14 03:28
8F:→ kroutony:我把static刪除就會錯誤.. 02/14 04:01
9F:→ optimist9266:我覺得你還是去把動態方法跟靜態方法的差別搞清楚再 02/14 15:42
10F:→ optimist9266:研究Thread,學東西還是徹底點比較好 02/14 15:43
11F:→ Elly:東西還是從基礎學吧~初學用Timer就很方便了 02/14 18:56
12F:→ kroutony:應該解決了.. new thread應該要放在contructor裡面 02/14 20:43
13F:→ emn178:請使用 BackgroundWorker 02/14 22:09
14F:→ kroutony:因為我需要跑while(true) background可以達到嗎? 02/15 00:50
15F:推 LaPass:Java沒Delegate吧?? 我都用runnable說 02/15 17:24
16F:→ LaPass:沒事別用while(true).... = = 02/15 17:24
17F:推 qwer820404:回LaPass大 ,Java是沒有Delegate這個關鍵字可以用 02/15 23:00
18F:→ qwer820404:但是他背後JVM的運作機制核心概念就是Delegate概念哩 02/15 23:00
19F:→ qwer820404:Java是透過實作介面來達到Delegate的效果 02/15 23:00
20F:推 LaPass:喔... 懂你的意思了 02/16 16:17