場景一: 使用thread建立兩個執行緒a 和b,如何順序執行這兩個執行緒,即確保執行完a再執行b?
解決方案:**就不寫了比較簡單,思路:再啟動乙個執行緒,在這個執行緒裡按順序start a和b,即能保證先執行a再執行b、
func<
int> func =()
=>
;int result =
threadwithreturnvalue1
(func)
;console.
writeline
(result)
;static t threadwithreturnvalue1
<
t>
(func func)
);//thread thread = new thread(threadstart);
thread thread =
newthread((
)=>);
thread.
start()
; thread.
join()
;//可以獲取返結果,但是這樣會阻塞介面
return t;
}
方式二:執行緒啟動後,不直接阻塞執行緒,而是返回乙個委託,當需要得到執行結果的時候在觸發委託(此時執行緒已經執行一段時間,有可能已經結束也有可能在進行中,減少介面卡頓的現象)
func<
int> funcresult =
threadwithreturnvalue2
(func)
;console.
writeline
("dosomething");
console.
writeline
("dosomething");
console.
writeline
("dosomething");
console.
writeline
("dosomething");
int iresult = funcresult.
invoke()
;//如果需要得到執行結果,是必須要等待的
static func
threadwithreturnvalue2
<
t>
(func func)
);//thread thread = new thread(threadstart);
thread thread =
newthread((
)=>);
thread.
start()
;return
newfunc
<
t>((
)=>);
}
Gson使用擴充套件及封裝
gsonbuilder 通過該類初始化一些gson的基本屬性 gson gson new gsonbuilder 序列化null serializenulls 設定日期時間格式,另有2個過載方法 在序列化和反序化時均生效 setdateformat yyyy mm dd 禁此序列化內部類 disab...
封裝分頁類
class pageelse if this total 0 else function showpage print r parse url query parse str parse url query parms if array key exists page parms if count ...
類和類的封裝
在日常生活中,我們總是將事物進行分門別類。列如 電腦,手機,相機等等,這些稱呼都是對於某一類事物的總稱。我們還能將電腦按照品牌分類,比如,戴爾電腦 惠普電腦 蘋果電腦 華碩電腦等。這些都是抽象的概念。我的電腦這個實體,它就是乙個具體的事物,我的電腦是戴爾的,但我不能說戴爾電腦是我的電腦。類和物件是面...