锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲视频中文字幕,亚洲AV无码久久,亚洲五月综合缴情在线观看http://m.tkk7.com/treenode/archive/2006/06/27/55289.htmlTreeNodeTreeNodeTue, 27 Jun 2006 03:29:00 GMThttp://m.tkk7.com/treenode/archive/2006/06/27/55289.htmlhttp://m.tkk7.com/treenode/comments/55289.htmlhttp://m.tkk7.com/treenode/archive/2006/06/27/55289.html#Feedback0http://m.tkk7.com/treenode/comments/commentRss/55289.htmlhttp://m.tkk7.com/treenode/services/trackbacks/55289.html鍦ㄤ笂鍥炵殑blog涓紝鎴戞姳鎬ㄨ繃鐢↗ava鐢ㄥ唴閮ㄧ被鏉ュ疄鐜頒簨浠跺洖璋冪殑鏈哄埗鏄涔堥毦鐪嬪拰楹葷儲(chǔ)銆傚湪榪欐鏃墮棿閲岋紝鎴戜竴鐩村湪鑰冭檻鏄惁鏈変粈涔堟柟娉曞彲浠ヤ笉鐢ㄥ唴閮ㄧ被鑰屽疄鐜板悓鏍風(fēng)殑鏁堟灉銆傚洜涓篔ava璇█鏈韓鐨勯檺鍒訛紝鎵浠ュ父瑙勬柟娉曟槸琛屼笉閫氱殑銆傛湁浜哄緩璁敤鍙嶅皠鈥斺旂殑紜氳繃鍙嶅皠鍙互璋冪敤浠繪剰鐨勬柟娉曪紝浣嗘槸鍙嶅皠鏁堢巼涓嶄匠錛屽棰戠箒鍙戠敓鐨勪簨浠舵垨璁鎬笉澶悎閫傘傚姩鎬佷唬鐞嗕篃涓嶈兘瑙e喅鏂規(guī)硶鏄犲皠鐨勯毦棰樸傛垜浼間箮璧拌繘浜?jiǎn)姝昏儭鍚屻?/p>

鏃㈢劧姝よ礬涓嶉氾紝閭d箞C#鏄浣曞疄鐜癲elegate鐨勫憿錛熻繃鍘諱篃鏇懼惉闂昏繃涓浜涘唴騫曪紝涓嶈繃榪欐琚兼墠鐪熺殑涓嬪喅蹇?jī)璁ょ湡鍘荤湅杩欐枤w潰鐨勪笢瑗褲傚師鏉$浣跨敤鐨勬槸浠g爜鐢熸垚鐨勬妧鏈細(xì)瀵逛簬姣忎釜delegate錛孋#閮戒細(xì)涓哄畠鐢熸垚涓涓淳鐢熶簬MulticaseDelegate鐨勫璞★紝鍏朵腑瀹炵幇浜?jiǎn)涓涓拰delegate絳懼悕鐩稿悓鐨勬柟娉曘傚悓鏃訛紝瀵筪elegate鐨勬搷浣滅+=鍜?=涔熶細(xì)琚紪璇戝櫒澶勭悊鎴愬MulticaseDelegate鏂規(guī)硶鐨勮皟鐢ㄣ?/p>

鐭ラ亾浜?jiǎn)杩欎竴鐐癸紝鎺ヤ笅鏉ュ氨闇瑕佺湅鐪婮ava涓湁娌℃湁綾諱技鐨勪唬鐮佺敓鎴愭妧鏈簡(jiǎn)銆傛湁鎰忔濈殑鏄紝鏌ユ壘鐨勬椂鍊欏彂鐜版湁娑堟伅璇達(dá)紝Java 6.0錛圡utang錛変腑灝嗕細(xì)鎻愪緵鍔ㄦ佷唬鐮佺敓鎴愮殑鍔熻兘銆傝繖鐨勭‘寰堝惛寮曚漢錛屼笉榪嘕ava6榪樺湪Beta闃舵錛岀溂涓嬭繕鎸囨湜涓嶄笂銆傚叾浠栨瘮杈冨嚭鍚嶇殑鏂規(guī)硶灝辨槸Apache becl鍜孫bjectweb ASM浜?jiǎn)銆傝繖涓や釜搴撻兘姣旇緝搴曞眰錛屼笉榪囪繕鏈変竴涓紑婧愮殑欏圭洰鈥斺攃glib鈥斺斿畠鍦ㄥ唴閮ㄤ嬌鐢ㄤ簡(jiǎn)asm錛屼笉榪囨彁渚涗簡(jiǎn)杈冨鐨勫疄鐢ㄥ姛鑳姐傛嵁璇碒ibernate鍜孲pring閮界敤鍒頒簡(jiǎn)榪欎釜涓滆タ銆傜爺絀惰繖涓簱鐨勬椂鍊欙紝鎴戜竴鐪肩湅鍒頒簡(jiǎn)MethodDelegate綾燴斺斿緢鏄庢樉榪欏氨鏄垜瑕佹壘鐨勪笢瑗夸簡(jiǎn)銆?/p>

MethodDelegate鐨勮璁℃濇兂寰堢被浼間簬C#鐨刣elegate鈥斺斿皢鎺ュ彛璋冪敤杞彂緇欑被鐨勪竴涓垚鍛樺嚱鏁般備笉榪囬槄璇繪枃妗g殑鏃跺欐垜鍙戠幇涓涓棶棰樸侻ethodDelegate瑕佹眰鍏舵墍瀹炵幇鐨勬帴鍙e繀欏誨彧鏈変竴涓叕鍏辨柟娉曪紝浣嗘槸SWT涓殑璁稿浜嬩歡鎺ュ彛閮芥湁涓嶆涓涓柟娉曪紱姣斿錛孲electionListener灝辨湁widgetSelected鍜宨dgetDefaultSelected涓や釜鏂規(guī)硶銆傚洜姝よ鍦⊿WT涓嬌鐢∕ethodDelegate錛岃繕

蹇呴』鍐嶅瀹炵幇鍙﹀涓灞傝漿鍙戙?/p>

浜?jiǎn)瑙f墜娈靛Q屾帴涓嬫潵鐨勪簨鎯呭氨涓嶉毦浜?jiǎn)銆傛葷粨璧鋒潵錛岄渶瑕佺殑姝ラ澶ц嚧濡備笅錛?br />1銆佷負(fù)姣忕闇瑕佸疄鐜扮殑浜嬩歡澹版槑涓涓帴鍙c傝繖鏄疢ethodDelegate鐨勮姹傘?br />2銆佺敤涓涓被瀹炵幇SWT鐨勪簨浠舵帴鍙o紝騫跺皢鐗瑰畾鐨勬帴鍙h皟鐢ㄨ漿鍙戝埌絎竴姝ユ墍瀹炵幇

鐨勬帴鍙c?br />3銆佺敤MethodDelegate鎻愪緵鐨勬柟娉曪紝澹版槑浜嬩歡澶勭悊瀵硅薄錛圗vent Handler

Target錛岄氬父涓轟富紿椾綋鎴栦富閮ㄤ歡錛夎瀹炵幇涓婅堪鐨勪簨浠舵帴鍙c備笅闈㈠氨鏉ュ疄鐜頒竴涓嬨備負(fù)浜?jiǎn)绠鍗曡搗瑙侊紝灝嗛渶瑕佸疄鐜扮殑鎺ュ彛澹版槑涓轟簨浠惰漿鍙戠被鐨勫唴閮ㄦ帴鍙o紝浠ラ伩鍏嶇淮鎶ゅお澶氭帴鍙f枃浠訛紙鍥犱負(fù)璇ユ帴鍙e彧闇瑕佸0鏄庝竴涓柟娉曪紝鎵浠ヤ笉浼?xì)鎶婂閮ňc繪悶寰楀お榪囧鏉傘傦級(jí)渚嬪錛屽鐞嗛儴浠墮夋嫨浜嬩歡錛坵idgetSelected錛夌殑綾誨彲浠ュ涓嬪疄鐜幫細(xì)

package org.yuhao.swt.events;

import net.sf.cglib.reflect.MethodDelegate;

import org.eclipse.swt.events.*;

public class WidgetSelectedHandler implements SelectionListener
{
聽public WidgetSelectedHandler( Object target, String

methodName )
聽{
聽聽delegate = (IWidgetSelectedDelegate)

MethodDelegate.create( target,
聽聽聽聽methodName,

IWidgetSelectedDelegate.class );
聽}

聽public void widgetDefaultSelected( SelectionEvent e )
聽{
聽}

聽public void widgetSelected( SelectionEvent e )
聽{
聽聽delegate.invoke( e );
聽}

聽public void invoke( SelectionEvent e )
聽{
聽}

聽public interface IWidgetSelectedDelegate
聽{
聽聽void invoke( SelectionEvent e );
聽}

聽private IWidgetSelectedDelegate delegate;
}

榪欎釜鎺ュ彛铏界劧鍙湁澶栭儴綾葷敤鍒幫紝浣嗘槸蹇呴』澹版槑涓簆ublic鐨勶紝鍚﹀垯榪愯浼?xì)鍑洪敊锛堟垜鎯冲ぇ姒傛槸鍥犱皋Z唬鐮佺敓鎴愪互鍚庤繕鏄閮ㄧ被錛岄渶瑕佸叕寮璁塊棶鏉冮檺錛夈備負(fù)浜?jiǎn)绠鍖栬皟鐢紝鍐嶅0鏄庝竴涓鐞嗕簨浠剁殑杈呭姪綾籈ventHandler錛屼笓闂ㄧ鐞嗗皢鍚勭浜嬩歡杞彂鍒扮浉搴旂殑Handler鐨勫伐浣滐細(xì)

public class EventHandler
{
聽public EventHandler( Object target )
聽{
聽聽this.target = target;
聽}

聽public void handleSelected( Button btn, String methodName )
聽{
聽聽btn.addSelectionListener( new

WidgetSelectedHandler( target, methodName ) );
聽}
聽private Object target;
}

榪欐牱錛屽湪紿楀彛涓氨鍙互綆鍗曠殑濡備笅澶勭悊浜嬩歡錛?br />public MainShell extends Shell()
{
聽聽public MainShell( Display display )
聽{
聽聽......
聽聽handler = new EventHandler( this );
聽聽handler.handleSelected( btn, "btn_clicked" );
聽}

聽public void btn_clicked( SelectionEvent e )
聽{
聽聽...
聽}
}

榪欓噷榪橀渶瑕佹敞鎰忥細(xì)1銆佷換浣曚簨浠跺鐞嗘柟娉曞繀欏誨0鏄庝負(fù)public鐨勩傝繖鏍蜂技涔庢湁榪濋潰鍚戝璞$殑灝佽鍘熷垯錛屼笉榪囧疄闄呬笂騫朵笉浼?xì)閫犳垚浠涔堝ぇ闂銆?銆佷簨浠舵柟娉曠殑絳懼悕蹇呴』鍜屽搴旂殑浜嬩歡鏂規(guī)硶鐩稿悓銆備緥濡傦紝widgetSelected鏂規(guī)硶鏈変竴涓猄electionEvent鍙傛暟錛岄偅涔堝鐞嗚浜嬩歡鐨刡tn_clicked鏂規(guī)硶涔熷繀欏繪湁涓斿彧鏈夎繖涓涓弬鏁般傚鏋滃啓閿欎簡(jiǎn)錛岄偅涔堣繍琛岀殑鏃跺欎細(xì)鎶涘嚭寮傚父錛岃鎵句笉鍒版寚瀹氱殑鏂規(guī)硶銆傝繖榪樻槸闇瑕佺▼搴忓憳鐨勭粏蹇?jī)鏉ヤ繚璇併傝繕綆楀垢榪愮殑鏄嚭閿欑殑鎻愮ず闈炲父鏄庢樉錛屼笉蹇呮媴蹇?jī)鋴社敤浜?jiǎn)榪囧害澶嶆潅鐨勬妧鏈屾壘涓嶅埌鐪熸鐨勫嚭閿欑偣銆?br />



TreeNode 2006-06-27 11:29 鍙戣〃璇勮
]]>
鍐呴儴綾昏鎴戝帉鎭禞avahttp://m.tkk7.com/treenode/archive/2006/06/15/53098.htmlTreeNodeTreeNodeThu, 15 Jun 2006 14:37:00 GMThttp://m.tkk7.com/treenode/archive/2006/06/15/53098.htmlhttp://m.tkk7.com/treenode/comments/53098.htmlhttp://m.tkk7.com/treenode/archive/2006/06/15/53098.html#Feedback26http://m.tkk7.com/treenode/comments/commentRss/53098.htmlhttp://m.tkk7.com/treenode/services/trackbacks/53098.html
聽聽聽聽聽聽聽聽b.addSelectionListener(聽new聽SelectionAdapter()
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽
publicvoid聽widgetSelected(聽SelectionEvent聽e聽)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Runnable聽longJob聽
=new聽Runnable()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
boolean聽聽聽聽done聽聽聽聽=false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
int聽聽聽聽聽聽聽聽id;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
publicvoid聽run()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Thread聽thread聽
=new聽Thread(聽new聽Runnable()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
publicvoid聽run()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽id聽
=聽nextId[0]++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽display.syncExec(聽
new聽Runnable()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
publicvoid聽run()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽text.isDisposed()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽text
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.append(聽
"\nStart聽long聽running聽task聽"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
+聽id聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
for聽(聽int聽i聽=0;聽i聽<100000;聽i++聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽display.isDisposed()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.println(聽
"do聽task聽that聽takes聽a聽long聽time聽in聽a聽separate聽thread聽"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
+聽id聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽display.isDisposed()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽display.syncExec(聽
new聽Runnable()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
publicvoid聽run()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽text.isDisposed()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽text
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.append(聽
"\nCompleted聽long聽running聽task聽"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
+聽id聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽done聽
=true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽display.wake();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽thread.start();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
while聽(聽!done聽&&!shell.isDisposed()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽!display.readAndDispatch()聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽display.sleep();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽};
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽BusyIndicator.showWhile(聽display,聽longJob聽);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}聽);
鍙﹀涓縐嶏細(xì)
聽聽聽聽聽聽聽聽delegatevoid聽NotifyStartDelegate(聽int聽threadId聽);
聽聽聽聽聽聽聽聽
delegatevoid聽NotifyFinishDelegate(聽int聽threadId聽);
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽btnInvoke.Click聽
+=聽BtnInvokeClick;
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
void聽BtnInvokeClick(object聽sender,聽System.EventArgs聽e)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽text.Text聽
="invoke聽long聽running聽job";
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽Cursor聽
=聽Cursors.WaitCursor;
聽聽聽聽聽聽聽聽聽聽聽聽Thread聽thread聽
=new聽Thread(聽new聽ThreadStart(ThreadProc)聽);
聽聽聽聽聽聽聽聽聽聽聽聽thread.Start();
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
privatevoid聽ThreadProc()
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽
int聽threadId聽=聽nextId聽++;
聽聽聽聽聽聽聽聽聽聽聽聽
bool聽done聽=false;
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽I(yíng)sDisposed聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽I(yíng)nvoke(聽
new聽NotifyStartDelegate(notifyThreadStart),聽newobject[]聽{聽threadId聽}聽);
聽聽聽聽聽聽聽聽聽聽聽聽
for聽(聽int聽i=0;聽i<100000;聽i++聽)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽I(yíng)sDisposed聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Console.WriteLine(聽
"do聽task聽that聽takes聽a聽long聽time聽in聽a聽separate聽thread聽"+聽threadId聽);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽I(yíng)sDisposed聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
return;
聽聽聽聽聽聽聽聽聽聽聽聽I(yíng)nvoke(聽
new聽NotifyFinishDelegate(notifyThreadFinish),聽newobject[]聽{聽threadId聽}聽);
聽聽聽聽聽聽聽聽聽聽聽聽done聽
=true;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
privatevoid聽notifyThreadStart(聽int聽threadId聽)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽text.Text聽
+="\r\nStart聽long聽task聽"+聽threadId;
聽聽聽聽聽聽聽聽聽聽聽聽threadCount聽
++;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
privatevoid聽notifyThreadFinish(聽int聽threadId聽)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽text.Text聽
+="\r\nCompleted聽long聽running聽task聽"+聽threadId;聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽threadCount聽
--;
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(聽threadCount聽==0聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Cursor聽
=聽Cursors.Default;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
privateint聽nextId聽=0;
聽聽聽聽聽聽聽聽
privateint聽threadCount聽=0;

鎴戝湪鍙︿竴涓湴鏂逛篃鎶辨ㄨ繃錛氬湪鎵鏈夋垜浜?jiǎn)瑙g殑璇a鐗規(guī)ч噷闈紝娌℃湁涓縐嶅儚Java鍐呴儴綾諱竴鏍瘋鎴戣寰楀弽鎰熲斺旂敋鑷沖埌浜?jiǎn)鎭跺績(jī)鐨勫湴姝ャ傚ぇ澶氫綔B/S緋葷粺鐨凧ava紼? 搴忓憳鍙兘涓嶄細(xì)鏈夎繖鏍風(fēng)殑鎰熻錛屽洜涓洪偅涓鍩熷熀鏈笂寰堝皯浼?xì)鐢ㄥ埌杩欎釜姒傚奎c(diǎn)傚彲鏄湪C/S錛屼笉綆$敤Swing榪樻槸SWT錛屽唴閮ㄧ被閮芥槸緇曚笉榪囧幓鐨勪竴搴уぇ灞便傚湪闃呰Eclipse绔欑偣涓婅澶氫唬鐮佺ず渚嬩互鍚庯紝鎴戠粓浜庢湁浜?jiǎn)鐥涜嫤鍒扳斺斾竴鐐逛篃涓嶅じ寮犫斺旀兂瑕佷綔鍛曠殑鍦版銆備笂闈㈢涓孌典唬鐮佸氨鏄鎴戞劅鍒扮獫蹇?jī)鐨勪唬鐮佷箣涓錛堜粎浠呮槸鍏朵腑涔嬩竴錛岃繕涓嶆槸鏈涓戦檵鐨勶級(jí)銆傛垜鎯籌紝Java 璇█鐨勫彂鏄庤呭ぇ姒備粠鏉ュ氨娌″啓榪囨闈㈢▼搴忥紱浠栨牴鏈篃涓嶆墦綆椾負(fù)榪欎釜棰嗗煙鐨勭▼搴忓憳鎻愪緵涓縐嶆瘮杈冨ソ鐨勪簨浠跺洖璋冩満鍒躲?br />
鍐呴儴綾繪湁浠涔堥棶棰樺憿錛熼鍏堬紝浣犳効鎰忓湪鍘葷湅浠g爜閫昏緫涔嬪墠錛屽厛鑺變笂濂藉嚑鍒嗛挓鍘繪悶娓呮鈥滆繖涓嫭鍙峰埌搴曟槸鍜屽摢涓厤瀵光濊繖縐嶈牏闂鍚楋紵浣犱笉濡ㄥ洖澶寸湅鐪嬬涓孌電殑浠g爜錛屾兂鎯寵繖孌靛叾瀹炵浉褰撶畝鍗曠殑紼嬪簭錛屾槸涓嶆槸鐪熺殑鍊煎緱鐢ㄨ繖涔堝鎷彿鍘昏冮獙浣犵殑鏅哄姏銆?br />
鍐呴儴綾繪槸瀵瑰皝瑁呯殑涓ラ噸鐮村潖銆傚畠瀵瑰閮ㄧ被鐨勪換浣曠鏈夊彉閲忛兘鏈夊畬鍏ㄧ殑璁塊棶鏉冮檺鈥斺斿鏋滀綘紿佺劧鍙戠幇鏌愪釜鍙橀噺鐨勫唴瀹逛笉瀵瑰姴浜?jiǎn)锛屼綘涓嶈兘浠呬粎鍦╯etXXX閲岄潰鍔犱釜鏂? 鐐瑰氨鎸囨湜鑳芥崟鑾峰埌閿欒錛涚湡姝g殑鍏冨嚩鍙兘鏄唴閮ㄧ被閲岄潰鐨勫摢涓鍙ュ憿銆傚鏋滃唴閮ㄧ被閮介潪甯哥畝鍗曪紝閭e掍篃娌′粈涔堛傚彲鏄綋鍐呴儴綾葷敤鏉ュ疄鐜頒簨浠剁殑鏃跺欙紝浣犲氨娌℃硶鎸囨湜瀹冧竴 鐩撮偅涔堢畝鍗曚簡(jiǎn)銆?br />
鍐呴儴綾繪槸嫻嬭瘯鐨勭洸鍖恒俆DD鎬繪槸璇達(dá)紝瑕佹祴璇曪紝嫻嬭瘯錛屾墍鏈夊寘鍚昏緫鐨勭被閮藉簲褰撻氳繃鍏呭垎鐨勬祴璇曘傚彲鏄唴閮ㄧ被鎬庝箞嫻嬭瘯錛熷彧瑕佹兂鎯沖氨鑳界煡閬擄紝澶у鏁板唴閮ㄧ被鏄牴鏈病娉曟祴璇曠殑錛屽畠鍜屽閮ㄧ被瀹炲湪鏄﹀悎鐨勫お绱у瘑浜?jiǎn)銆傚尶鍚嶅唴閮ㄧ被鐨勯棶棰樻洿涓ラ噸鈥斺斿畠鏄粷瀵規(guī)棤娉曟祴璇曠殑銆備綘鎬庝箞嫻嬭瘯涓涓繛鍚嶅瓧閮芥病鏈夌殑鏂規(guī)硶錛?br />
涓嶇鏈夋剰鏃犳剰錛屽唴閮ㄧ被鍦紙鑷沖皯鎴戠湅鍒扮殑錛夊疄璺典腑浜嬪疄涓婇紦鍔變簡(jiǎn)涓嶅ソ鐨勭紪紼嬮鏍箋傚氨鏄錛屽畠榪濊儗浜?jiǎn)DRY錛圖on't Repeat Yourself錛夌殑鍘熷垯銆傛瘮濡傦紝button.addSelectionListener鍚庨潰鍑犱箮鎬繪槸璺熺潃SelectionAdapter+鎷彿+ widgetSelected鍘熷瀷鍐?涓鍫嗘嫭鍙鳳紱Display.asyncExec鍚庨潰鎬繪槸瑕佸啓涓妌ew Runnble()錛寁oid run錛堬級(jí)錛屾嫭鍙鳳紝絳夌瓑銆傚崈綃囦竴寰嬬殑涓滆タ錛屽彲鏄張涓嶅緱涓嶅啓銆傝屼笖錛屽嚑涔庢病鏈変粈涔堝ソ鐨勫姙娉曞彲浠ユ敼榪涳紒鍥犱負(fù)璇硶鐨勮鍒欒姹備綘蹇呴』榪欐牱鍋氥傛瘡澶╁啓榪欎簺鏃犺亰鐨勪笢 瑗匡紝浣犵殑璇濅細(xì)涓嶄細(xì)鐑?chǔ)锛熷摝锛屽伐鍏锋槸鏈夌殑銆傚彲鏄伐鍏峰彧璐熻矗鐢熸垚浠g爜錛屼互鍚庣殑緇存姢榪樻槸瑕佷綘鏉ュ仛鈥斺斾笉鏄箞錛?br />

TreeNode 2006-06-15 22:37 鍙戣〃璇勮
]]>
SWT: 娣卞叆鍐呭箷涔嬫秷鎭満鍒舵帰縐橈紙涓婄瘒錛?/title><link>http://m.tkk7.com/treenode/archive/2006/06/03/50114.html</link><dc:creator>TreeNode</dc:creator><author>TreeNode</author><pubDate>Sat, 03 Jun 2006 04:46:00 GMT</pubDate><guid>http://m.tkk7.com/treenode/archive/2006/06/03/50114.html</guid><wfw:comment>http://m.tkk7.com/treenode/comments/50114.html</wfw:comment><comments>http://m.tkk7.com/treenode/archive/2006/06/03/50114.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://m.tkk7.com/treenode/comments/commentRss/50114.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/treenode/services/trackbacks/50114.html</trackback:ping><description><![CDATA[     鎽樿: 鏈枃璇曞浘閫忚繃SWT闈㈠悜瀵硅薄鐨勫皝瑁咃紝娣卞叆鐮旂┒鐣岄潰妗嗘灦鐨勬瀯閫犱腑鏈澶嶆潅涔熷彲浠ヨ鏄渶鏈夎叮鐨勯棶棰樹箣涓鈥斺斿嵆鐣岄潰妗嗘灦濡備綍浠ラ潰鍚戝璞$殑鏂瑰紡瀹炵幇鎿嶄綔緋葷粺搴曞眰鐨勬秷鎭満鍒躲?nbsp; <a href='http://m.tkk7.com/treenode/archive/2006/06/03/50114.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/treenode/aggbug/50114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/treenode/" target="_blank">TreeNode</a> 2006-06-03 12:46 <a href="http://m.tkk7.com/treenode/archive/2006/06/03/50114.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://321fafa.com" target="_blank">国产精品久久久久久亚洲影视</a>| <a href="http://www91pao.com" target="_blank">国产精品亚洲色婷婷99久久精品</a>| <a href="http://lookvod.com" target="_blank">免费国产a理论片</a>| <a href="http://www321fafa.com" target="_blank">热99re久久免费视精品频软件</a>| <a href="http://cdlsy.com" target="_blank">亚洲日韩精品国产一区二区三区</a>| <a href="http://52xbjs.com" target="_blank">69堂人成无码免费视频果冻传媒</a>| <a href="http://c7372.com" target="_blank">亚洲激情校园春色</a>| <a href="http://8k91.com" target="_blank">国产卡一卡二卡三免费入口</a>| <a href="http://345504.com" target="_blank">男人的天堂亚洲一区二区三区 </a>| <a href="http://fenxiangceo.com" target="_blank">国产免费131美女视频</a>| <a href="http://www6yg6yg.com" target="_blank">亚洲精品无码人妻无码</a>| <a href="http://8654123.com" target="_blank">四虎影在线永久免费四虎地址8848aa</a>| <a href="http://szzrjk.com" target="_blank">春暖花开亚洲性无区一区二区</a>| <a href="http://zzz134.com" target="_blank">亚洲精品97久久中文字幕无码</a>| <a href="http://777cc55.com" target="_blank">成人自慰女黄网站免费大全</a>| <a href="http://cc8n.com" target="_blank">亚洲av日韩av无码</a>| <a href="http://zzjiji.com" target="_blank">国产免费AV片在线播放唯爱网</a>| <a href="http://vvihh.com" target="_blank">亚洲日韩乱码中文字幕</a>| <a href="http://laosanqq.com" target="_blank">日韩毛片无码永久免费看</a>| <a href="http://6217c.com" target="_blank">一区二区三区免费在线视频</a>| <a href="http://kwknc.com" target="_blank">亚洲国产精品无码专区</a>| <a href="http://sijep.com" target="_blank">狠狠热精品免费观看</a>| <a href="http://whxhjc.com" target="_blank">在线观看亚洲精品国产</a>| <a href="http://zzttt04.com" target="_blank">亚洲国产精品免费视频</a>| <a href="http://222dv.com" target="_blank">亚洲综合激情五月丁香六月</a>| <a href="http://199291.com" target="_blank">免费少妇a级毛片人成网</a>| <a href="http://www678678.com" target="_blank">亚洲国产成人99精品激情在线 </a>| <a href="http://44jjy.com" target="_blank">可以免费观看一级毛片黄a</a>| <a href="http://dqzlxgg.com" target="_blank">国产精品玖玖美女张开腿让男人桶爽免费看 </a>| <a href="http://51708695.com" target="_blank">亚洲成人国产精品</a>| <a href="http://imqun.com" target="_blank">无码精品一区二区三区免费视频 </a>| <a href="http://zhnetbar.com" target="_blank">免费国产成人午夜在线观看</a>| <a href="http://46339cc.com" target="_blank">亚洲成a人片77777群色</a>| <a href="http://zzjiji.com" target="_blank">亚洲Av无码国产情品久久</a>| <a href="http://52xingai.com" target="_blank">精品视频一区二区三区免费</a>| <a href="http://hmjx-tape.com" target="_blank">亚洲成a人片在线观看中文!!!</a>| <a href="http://jiajuco.com" target="_blank">免费国产真实迷j在线观看</a>| <a href="http://gjwlgzs.com" target="_blank">久久国产乱子精品免费女 </a>| <a href="http://theav25.com" target="_blank">亚洲sss综合天堂久久久</a>| <a href="http://wanguoshan.com" target="_blank">亚洲伦乱亚洲h视频</a>| <a href="http://alankell.com" target="_blank">18女人毛片水真多免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>