锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
寮濮嬫柊綰跨▼
鍦?Net涓嬪垱寤轟竴涓柊綰跨▼鏄潪甯稿鏄撶殑錛屼綘鍙互閫氳繃浠ヤ笅鐨勮鍙ユ潵寮濮嬩竴涓柊鐨勭嚎紼嬶細
Thread thread = new Thread (new ThreadStart (ThreadFunc));
thread.Start ();
絎竴鏉¤鍙ュ垱寤轟竴涓柊鐨凾hread瀵硅薄錛屽茍鎸囨槑浜嗕竴涓綰跨▼鐨勬柟娉曘傚綋鏂扮殑綰跨▼寮濮嬫椂錛岃鏂規硶涔熷氨琚皟鐢ㄦ墽琛屼簡銆傝綰跨▼瀵硅薄閫氳繃涓涓猄ystem..Threading.ThreadStart綾葷殑涓涓疄渚嬩互綾誨瀷瀹夊叏鐨勬柟娉曟潵璋冪敤瀹冭璋冪敤鐨勭嚎紼嬫柟娉曘?nbsp;
絎簩鏉¤鍙ユ寮忓紑濮嬭鏂扮嚎紼嬶紝涓鏃︽柟娉昐tart錛堬級琚皟鐢紝璇ョ嚎紼嬪氨淇濇寔鍦ㄤ竴涓?alive"鐨勭姸鎬佷笅浜嗭紝浣犲彲浠ラ氳繃璇誨彇瀹冪殑IsAlive灞炴ф潵鍒ゆ柇瀹冩槸鍚﹀浜?alive"鐘舵併備笅闈㈢殑璇彞鏄劇ず浜嗗鏋滀竴涓嚎紼嬪浜?alive"鐘舵佷笅灝卞皢璇ョ嚎紼嬫寕璧風殑鏂規硶錛?nbsp;
if (thread.IsAlive) {
thread.Suspend ();
}
涓嶈繃璇鋒敞鎰忥紝綰跨▼瀵硅薄鐨凷tart錛堬級鏂規硶鍙槸鍚姩浜嗚綰跨▼錛岃屽茍涓嶄繚璇佸叾綰跨▼鏂規硶ThreadFunc錛堬級鑳界珛鍗沖緱鍒版墽琛屻傚畠鍙槸淇濊瘉璇ョ嚎紼嬪璞¤兘琚垎閰嶅埌CPU鏃墮棿錛岃屽疄闄呯殑鎵ц榪樿鐢辨搷浣滅郴緇熸牴鎹鐞嗗櫒鏃墮棿鏉ュ喅瀹氥?nbsp;
涓涓嚎紼嬬殑鏂規硶涓嶅寘鍚換浣曞弬鏁幫紝鍚屾椂涔熶笉榪斿洖浠諱綍鍊箋傚畠鐨勫懡鍚嶈鍒欏拰涓鑸嚱鏁扮殑鍛藉悕瑙勫垯鐩稿悓銆傚畠鏃㈠彲浠ユ槸闈欐佺殑錛坰tatic錛変篃鍙互鏄潪闈欐佺殑錛坣onstatic錛夈傚綋瀹冩墽琛屽畬姣曞悗錛岀浉搴旂殑綰跨▼涔熷氨緇撴潫浜嗭紝鍏剁嚎紼嬪璞$殑IsAlive灞炴т篃灝辮緗負false浜嗐備笅闈㈡槸涓涓嚎紼嬫柟娉曠殑瀹炰緥錛?nbsp;
public static void ThreadFunc()
{
for (int i = 0; i <10; i++) {
Console.WriteLine("ThreadFunc {0}", i);
}
}
鍓嶅彴綰跨▼鍜屽悗鍙扮嚎紼?nbsp;
.Net鐨勫叕鐢ㄨ璦榪愯鏃訛紙Common Language Runtime錛孋LR錛夎兘鍖哄垎涓ょ涓嶅悓綾誨瀷鐨勭嚎紼嬶細鍓嶅彴綰跨▼鍜屽悗鍙扮嚎紼嬨傝繖涓よ呯殑鍖哄埆灝辨槸錛氬簲鐢ㄧ▼搴忓繀欏昏繍琛屽畬鎵鏈夌殑鍓嶅彴綰跨▼鎵嶅彲浠ラ鍑猴紱鑰屽浜庡悗鍙扮嚎紼嬶紝搴旂敤紼嬪簭鍒欏彲浠ヤ笉鑰冭檻鍏舵槸鍚﹀凡緇忚繍琛屽畬姣曡岀洿鎺ラ鍑猴紝鎵鏈夌殑鍚庡彴綰跨▼鍦ㄥ簲鐢ㄧ▼搴忛鍑烘椂閮戒細鑷姩緇撴潫銆?nbsp;
涓涓嚎紼嬫槸鍓嶅彴綰跨▼榪樻槸鍚庡彴綰跨▼鍙敱瀹冪殑IsBackground灞炴ф潵鍐沖畾銆傝繖涓睘鎬ф槸鍙鍙堝彲鍐欑殑銆傚畠鐨勯粯璁ゅ間負false錛屽嵆鎰忓懗鐫涓涓嚎紼嬮粯璁や負鍓嶅彴綰跨▼銆傛垜浠彲浠ュ皢瀹冪殑IsBackground灞炴ц緗負true錛屼粠鑰屼嬌涔嬫垚涓轟竴涓悗鍙扮嚎紼嬨?nbsp;
涓嬮潰鐨勪緥瀛愭槸涓涓帶鍒跺彴紼嬪簭錛岀▼搴忎竴寮濮嬩究鍚姩浜?0涓嚎紼嬶紝姣忎釜綰跨▼榪愯5縐掗挓鏃墮棿銆傜敱浜庣嚎紼嬬殑IsBackground灞炴ч粯璁や負false錛屽嵆瀹冧滑閮芥槸鍓嶅彴綰跨▼錛屾墍浠ュ敖綆$▼搴忕殑涓葷嚎紼嬪緢蹇氨榪愯緇撴潫浜嗭紝浣嗙▼搴忚鍒版墍鏈夊凡鍚姩鐨勭嚎紼嬮兘榪愯瀹屾瘯鎵嶄細緇撴潫銆傜ず渚嬩唬鐮佸涓嬶細
using System;
using System.Threading;
class MyApp
{
public static void Main ()
{
for (int i=0; i<10; i++) {
Thread thread = new Thread (new ThreadStart (ThreadFunc));
thread.Start ();
}
}
private static void ThreadFunc ()
{
DateTime start = DateTime.Now;
while ((DateTime.Now - start).Seconds <5)
;
}
}
鎺ヤ笅鏉ユ垜浠涓婇潰鐨勪唬鐮佽繘琛岀暐寰慨鏀癸紝灝嗘瘡涓嚎紼嬬殑IsBackground灞炴ч兘璁劇疆涓簍rue錛屽垯姣忎釜綰跨▼閮芥槸鍚庡彴綰跨▼浜嗐傞偅涔堝彧瑕佺▼搴忕殑涓葷嚎紼嬬粨鏉熶簡錛屾暣涓▼搴忎篃灝辯粨鏉熶簡銆傜ず渚嬩唬鐮佸涓嬶細
using System;
using System.Threading;
class MyApp
{
public static void Main ()
{
for (int i=0; i<10; i++) {
Thread thread = new Thread (new ThreadStart (ThreadFunc));
thread.IsBackground = true;
thread.Start ();
}
}
private static void ThreadFunc ()
{
DateTime start = DateTime.Now;
while ((DateTime.Now - start).Seconds <5)
;
}
}
鏃㈢劧鍓嶅彴綰跨▼鍜屽悗鍙扮嚎紼嬫湁榪欑宸埆錛岄偅涔堟垜浠庝箞鐭ラ亾璇ュ浣曡緗竴涓嚎紼嬬殑IsBackground灞炴у憿錛熶笅闈㈡槸涓浜涘熀鏈殑鍘熷垯錛氬浜庝竴浜涘湪鍚庡彴榪愯鐨勭嚎紼嬶紝褰撶▼搴忕粨鏉熸椂榪欎簺綰跨▼娌℃湁蹇呰緇х畫榪愯浜嗭紝閭d箞榪欎簺綰跨▼灝卞簲璇ヨ緗負鍚庡彴綰跨▼銆傛瘮濡備竴涓▼搴忓惎鍔ㄤ簡涓涓繘琛屽ぇ閲忚繍綆楃殑綰跨▼錛屽彲鏄彧瑕佺▼搴忎竴鏃︾粨鏉燂紝閭d釜綰跨▼灝卞け鍘諱簡緇х畫瀛樺湪鐨勬剰涔夛紝閭d箞閭d釜綰跨▼灝辮鏄綔涓哄悗鍙扮嚎紼嬬殑銆傝屽浜庝竴浜涙湇鍔′簬鐢ㄦ埛鐣岄潰鐨勭嚎紼嬪線寰鏄璁劇疆涓哄墠鍙扮嚎紼嬬殑錛屽洜涓哄嵆浣跨▼搴忕殑涓葷嚎紼嬬粨鏉熶簡錛屽叾浠栫殑鐢ㄦ埛鐣岄潰鐨勭嚎紼嬪緢鍙兘瑕佺戶緇瓨鍦ㄦ潵鏄劇ず鐩稿叧鐨勪俊鎭紝鎵浠ヤ笉鑳界珛鍗崇粓姝㈠畠浠傝繖閲屾垜鍙槸緇欏嚭浜嗕竴浜涘師鍒欙紝鍏蜂綋鍒板疄闄呯殑榪愮敤寰寰闇瑕佺紪紼嬭呯殑榪涗竴姝ヤ粩緇嗘枱閰屻?nbsp;
綰跨▼浼樺厛綰?nbsp;
涓鏃︿竴涓嚎紼嬪紑濮嬭繍琛岋紝綰跨▼璋冨害紼嬪簭灝卞彲浠ユ帶鍒跺叾鎵鑾峰緱鐨凜PU鏃墮棿銆傚鏋滀竴涓墭綆$殑搴旂敤紼嬪簭榪愯鍦╓indows鏈哄櫒涓婏紝鍒欑嚎紼嬭皟搴︾▼搴忔槸鐢盬indows鎵鎻愪緵鐨勩傚湪鍏朵粬鐨勫鉤鍙頒笂錛岀嚎紼嬭皟搴︾▼搴忓彲鑳芥槸鎿嶄綔緋葷粺鐨勪竴閮ㄥ垎錛屼篃鑷劧鍙兘鏄?Net妗嗘灦鐨勪竴閮ㄥ垎銆備笉榪囨垜浠繖閲屼笉蹇呰冭檻綰跨▼鐨勮皟搴︾▼搴忔槸濡備綍浜х敓鐨勶紝鎴戜滑鍙鐭ラ亾閫氳繃璁劇疆綰跨▼鐨勪紭鍏堢駭鎴戜滑灝卞彲浠ヤ嬌璇ョ嚎紼嬭幏寰椾笉鍚岀殑CPU鏃墮棿銆?nbsp;
綰跨▼鐨勪紭鍏堢駭鏄敱Thread.Priority灞炴ф帶鍒剁殑錛屽叾鍊煎寘鍚細ThreadPriority.Highest銆乀hreadPriority.AboveNormal銆乀hreadPriority.Normal銆乀hreadPriority.BelowNormal鍜孴hreadPriority.Lowest銆備粠瀹冧滑鐨勫悕縐頒笂鎴戜滑鑷劧鍙互鐭ラ亾瀹冧滑鐨勪紭鍏堢▼搴︼紝鎵浠ヨ繖閲屽氨涓嶅浣滀粙緇嶄簡銆?nbsp;
綰跨▼鐨勯粯璁や紭鍏堢駭涓篢hreadPriority.Normal銆傜悊璁轟笂錛屽叿鏈夌浉鍚屼紭鍏堢駭鐨勭嚎紼嬩細鑾峰緱鐩稿悓鐨凜PU鏃墮棿錛屼笉榪囧湪瀹為檯鎵ц鏃訛紝娑堟伅闃熷垪涓殑綰跨▼闃誨鎴栨槸鎿嶄綔緋葷粺鐨勪紭鍏堢駭鐨勬彁楂樼瓑鍘熷洜浼氬鑷村叿鏈夌浉鍚屼紭鍏堢駭鐨勭嚎紼嬩細鑾峰緱涓嶅悓鐨凜PU鏃墮棿銆備笉榪囦粠鎬諱綋涓婃潵鑰冭檻浠嶅彲浠ュ拷鐣ヨ繖縐嶅樊寮傘備綘鍙互閫氳繃浠ヤ笅鐨勬柟娉曟潵鏀瑰彉涓涓嚎紼嬬殑浼樺厛綰с?nbsp;
thread.Priority = ThreadPriority.AboveNormal;
鎴栨槸錛?nbsp;
thread.Priority = ThreadPriority.BelowNormal;
閫氳繃涓婇潰鐨勭涓鍙ヨ鍙ヤ綘鍙互鎻愰珮涓涓嚎紼嬬殑浼樺厛綰э紝閭d箞璇ョ嚎紼嬪氨浼氱浉搴旂殑鑾峰緱鏇村鐨凜PU鏃墮棿錛涢氳繃絎簩鍙ヨ鍙ヤ綘渚塊檷浣庝簡閭d釜綰跨▼鐨勪紭鍏堢駭錛屼簬鏄畠灝變細琚垎閰嶅埌姣斿師鏉ュ皯鐨凜PU鏃墮棿浜嗐備綘鍙互鍦ㄤ竴涓嚎紼嬪紑濮嬭繍琛屽墠鎴栨槸鍦ㄥ畠鐨勮繍琛岃繃紼嬩腑鐨勪換浣曟椂鍊欐敼鍙樺畠鐨勪紭鍏堢駭銆傜悊璁轟笂浣犺繕鍙互浠繪剰鐨勮緗瘡涓嚎紼嬬殑浼樺厛綰э紝涓嶈繃涓涓紭鍏堢駭榪囬珮鐨勭嚎紼嬪線寰浼氬獎鍝嶅埌鍏朵粬綰跨▼鐨勮繍琛岋紝鐢氳嚦褰卞搷鍒板叾浠栫▼搴忕殑榪愯錛屾墍浠ユ渶濂戒笉瑕侀殢鎰忕殑璁劇疆綰跨▼鐨勪紭鍏堢駭銆?nbsp;
鎸傝搗綰跨▼鍜岄噸鏂板紑濮嬬嚎紼?nbsp;
Thread綾誨垎鍒彁渚涗簡涓や釜鏂規硶鏉ユ寕璧風嚎紼嬪拰閲嶆柊寮濮嬬嚎紼嬶紝涔熷氨鏄疶hread.Suspend鑳芥殏鍋滀竴涓鍦ㄨ繍琛岀殑綰跨▼錛岃孴hread.Resume鍙堣兘璁╅偅涓嚎紼嬬戶緇繍琛屻備笉鍍廤indows鍐呮牳錛?Net妗嗘灦鏄笉璁板綍綰跨▼鐨勬寕璧鋒鏁扮殑錛屾墍浠ヤ笉綆′綘鎸傝搗綰跨▼榪囧嚑嬈★紝鍙涓嬈¤皟鐢═hread.Resume灝卞彲浠ヨ鎸傝搗鐨勭嚎紼嬮噸鏂板紑濮嬭繍琛屻?nbsp;
Thread綾昏繕鎻愪緵浜嗕竴涓潤鎬佺殑Thread.Sleep鏂規硶錛屽畠鑳戒嬌涓涓嚎紼嬭嚜鍔ㄧ殑鎸傝搗涓瀹氱殑鏃墮棿錛岀劧鍚庤嚜鍔ㄧ殑閲嶆柊寮濮嬨備竴涓嚎紼嬭兘鍦ㄥ畠鑷韓鍐呴儴璋冪敤Thread.Sleep鏂規硶錛屼篃鑳藉湪鑷韓鍐呴儴璋冪敤Thread.Suspend鏂規硶錛屽彲鏄竴瀹氳鍒殑綰跨▼鏉ヨ皟鐢ㄥ畠鐨凾hread.Resume鏂規硶鎵嶅彲浠ラ噸鏂板紑濮嬨傝繖涓鐐規槸涓嶆槸寰堝鏄撴兂閫氱殑鍟婏紵涓嬮潰鐨勪緥瀛愭樉紺轟簡濡備綍榪愮敤Thread.Sleep鏂規硶錛?nbsp;
while (ContinueDrawing) {
DrawNextSlide ();
Thread.Sleep (5000);
}
緇堟綰跨▼
鍦ㄦ墭綆$殑浠g爜涓紝浣犲彲浠ラ氳繃浠ヤ笅鐨勮鍙ュ湪涓涓嚎紼嬩腑灝嗗彟涓涓嚎紼嬬粓姝㈡帀錛?nbsp;
thread.Abort ();
涓嬮潰鎴戜滑鏉ヨВ閲婁竴涓婣bort錛堬級鏂規硶鏄浣曞伐浣滅殑銆傚洜涓哄叕鐢ㄨ璦榪愯鏃剁鐞嗕簡鎵鏈夌殑鎵樼鐨勭嚎紼嬶紝鍚屾牱瀹冭兘鍦ㄦ瘡涓嚎紼嬪唴鎶涘嚭寮傚父銆侫bort錛堬級鏂規硶鑳藉湪鐩爣綰跨▼涓姏鍑轟竴涓猅hreadAbortException寮傚父浠庤屽鑷寸洰鏍囩嚎紼嬬殑緇堟銆備笉榪嘇bort錛堬級鏂規硶琚皟鐢ㄥ悗錛岀洰鏍囩嚎紼嬪彲鑳藉茍涓嶆槸椹笂灝辯粓姝簡銆傚洜涓哄彧瑕佺洰鏍囩嚎紼嬫鍦ㄨ皟鐢ㄩ潪鎵樼鐨勪唬鐮佽屼笖榪樻病鏈夎繑鍥炵殑璇濓紝璇ョ嚎紼嬪氨涓嶄細绔嬪嵆緇堟銆傝屽鏋滅洰鏍囩嚎紼嬪湪璋冪敤闈炴墭綆$殑浠g爜鑰屼笖闄峰叆浜嗕竴涓寰幆鐨勮瘽錛岃鐩爣綰跨▼灝辨牴鏈笉浼氱粓姝€備笉榪囪繖縐嶆儏鍐靛彧鏄竴浜涚壒渚嬶紝鏇村鐨勬儏鍐墊槸鐩爣綰跨▼鍦ㄨ皟鐢ㄦ墭綆$殑浠g爜錛屼竴鏃bort錛堬級琚皟鐢ㄩ偅涔堣綰跨▼灝辯珛鍗崇粓姝簡銆?nbsp;
鍦ㄥ疄闄呭簲鐢ㄤ腑錛屼竴涓嚎紼嬬粓姝簡鍙︿竴涓嚎紼嬶紝涓嶈繃寰寰瑕佺瓑閭d釜綰跨▼瀹屽叏緇堟浜嗗畠鎵嶅彲浠ョ戶緇繍琛岋紝榪欐牱鐨勮瘽鎴戜滑灝卞簲璇ョ敤鍒板畠鐨凧oin錛堬級鏂規硶銆傜ず渚嬩唬鐮佸涓嬶細
thread.Abort (); // 瑕佹眰緇堟鍙︿竴涓嚎紼?nbsp;
thread.Join (); // 鍙埌鍙︿竴涓嚎紼嬪畬鍏ㄧ粓姝簡錛屽畠鎵嶇戶緇繍琛?nbsp;
浣嗘槸濡傛灉鍙︿竴涓嚎紼嬩竴鐩翠笉鑳界粓姝㈢殑璇濓紙鍘熷洜濡傚墠鎵榪幫級錛屾垜浠氨闇瑕佺粰Join錛堬級鏂規硶璁劇疆涓涓椂闂撮檺鍒訛紝鏂規硶濡備笅錛?nbsp;
thread.Join (5000); // 鏆傚仠5縐?nbsp;
榪欐牱錛屽湪5縐掑悗錛屼笉綆¢偅涓嚎紼嬫湁娌℃湁瀹屽叏緇堟錛屾湰綰跨▼灝卞己琛岃繍琛屼簡銆傝鏂規硶榪樿繑鍥炰竴涓竷灝斿瀷鐨勫鹼紝濡傛灉鏄痶rue鍒欒〃鏄庨偅涓嚎紼嬪凡緇忓畬鍏ㄧ粓姝簡錛岃屽鏋滄槸false鐨勮瘽錛屽垯琛ㄦ槑宸茬粡瓚呰繃浜嗘椂闂撮檺鍒朵簡銆?nbsp;
鏃墮挓綰跨▼
.Net妗嗘灦涓殑Timer綾誨彲浠ヨ浣犱嬌鐢ㄦ椂閽熺嚎紼嬶紝瀹冩槸鍖呭惈鍦⊿ystem.Threading鍚嶅瓧絀洪棿涓殑錛屽畠鐨勪綔鐢ㄥ氨鏄湪涓瀹氱殑鏃墮棿闂撮殧鍚庤皟鐢ㄤ竴涓嚎紼嬬殑鏂規硶銆備笅闈㈡垜緇欏ぇ瀹跺睍紺轟竴涓叿浣撶殑瀹炰緥錛岃瀹炰緥浠?縐掍負鏃墮棿闂撮殧錛屽湪鎺у埗鍙頒腑杈撳嚭涓嶅悓鐨勫瓧絎︿覆錛屼唬鐮佸涓嬶細
using System;
using System.Threading;
class MyApp
{
private static bool TickNext = true;
public static void Main ()
{
Console.WriteLine ("Press Enter to terminate...");
TimerCallback callback = new TimerCallback (TickTock);
Timer timer = new Timer (callback, null, 1000, 1000);
Console.ReadLine ();
}
private static void TickTock (object state)
{
Console.WriteLine (TickNext ? "Tick" : "Tock");
TickNext = ! TickNext;
}
}
浠庝笂闈㈢殑浠g爜涓紝鎴戜滑鐭ラ亾絎竴涓嚱鏁板洖璋冩槸鍦?000姣鍚庢墠鍙戠敓鐨勶紝浠ュ悗鐨勫嚱鏁板洖璋冧篃鏄湪姣忛殧1000姣涔嬪悗鍙戠敓鐨勶紝榪欐槸鐢盩imer瀵硅薄鐨勬瀯閫犲嚱鏁頒腑鐨勭涓変釜鍙傛暟鎵鍐沖畾鐨勩傜▼搴忎細鍦?000姣鐨勬椂闂撮棿闅斿悗涓嶆柇鐨勪駭鐢熸柊綰跨▼錛屽彧鍒扮敤鎴瘋緭鍏ュ洖杞︽墠緇撴潫榪愯銆備笉榪囧煎緱娉ㄦ剰鐨勬槸錛岃櫧鐒舵垜浠緗簡鏃墮棿闂撮殧涓?000姣錛屼絾鏄疄闄呰繍琛岀殑鏃跺欏線寰騫朵笉鑳介潪甯哥簿紜傚洜涓篧indows鎿嶄綔緋葷粺騫朵笉鏄竴涓疄鏃剁郴緇燂紝鑰屽叕鐢ㄨ璦榪愯鏃朵篃涓嶆槸瀹炴椂鐨勶紝鎵浠ョ敱浜庣嚎紼嬭皟搴︾殑鍗冨彉涓囧寲錛屽疄闄呯殑榪愯鏁堟灉寰寰鏄笉鑳界簿紜埌姣綰х殑錛屼絾鏄浜庝竴鑸殑搴旂敤鏉ヨ閭e凡緇忔槸瓚沖鐨勪簡錛屾墍浠ヤ綘涔熶笉蹇呭崄鍒嗚嫑姹傘?nbsp;
灝忕粨
鏈枃浠嬬粛浜嗗湪.Net涓嬭繘琛屽綰跨▼緙栫▼鎵闇瑕佹帉鎻$殑涓浜涘熀鏈煡璇嗐備粠鏂囩珷涓垜浠彲浠ョ煡閬撳湪.Net涓嬭繘琛屽綰跨▼緙栫▼鐩稿浠ュ墠鏄湁浜嗗ぇ澶х殑綆鍖栵紝浣嗘槸鍏跺姛鑳藉茍娌℃湁琚墛寮便備嬌鐢ㄤ互涓婄殑涓浜涘熀鏈煡璇嗭紝璇昏呭氨鍙互璇曠潃緙栧啓.Net涓嬬殑澶氱嚎紼嬬▼搴忎簡銆備笉榪囪緙栧啓鍑哄姛鑳芥洿鍔犲己澶ц屼笖Bug灝戠殑澶氱嚎紼嬪簲鐢ㄧ▼搴忥紝璇昏呴渶瑕佹帉鎻¤濡傜嚎紼嬪悓姝ャ佺嚎紼嬫睜絳夐珮綰х殑澶氱嚎紼嬬紪紼嬫妧鏈傝鑰呬笉濡ㄥ弬鑰冧竴浜涙搷浣滅郴緇熸柟闈㈡垨鏄綰跨▼緙栫▼鏂歸潰鐨勬妧鏈笡涔︺?
]]>
]]>
{
struct customerName
{
public string firstName, secondName;
public string Name()
{
return firstName + " " + secondName;
}
}
class Program
{
static void Main(string[] args)
{
customerName myName;
myName.firstName = "Jim";
myName.secondName = "Smith";
Console.WriteLine(myName.Name());
Console.ReadKey();
}
}
}
SELECT 瀛楁 FROM 琛?WHERE 鏌愬瓧孌?Like 鏉′歡 |
function sqlencode(str) str=replace(str,"[","[[]") '姝ゅ彞涓瀹氳鍦ㄦ渶鍓?br>str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function |