主頁 > .NET開發 > c#基礎,有點懵,麻煩各位進來看看

c#基礎,有點懵,麻煩各位進來看看

2020-09-12 03:00:56 .NET開發


這兩種寫法就是一個在方法中,一個在方法外。
第一種在方法中的寫法,方法執行完了的list會被釋放掉嗎?
拋去在在方法中創建list的消耗,在性能、記憶體、堆疊上是一樣的嗎?
本來我一直用的是第一種,今天被領導說了一下,有點懵。

這一種方法執行完了以后list有沒有被釋放掉

uj5u.com熱心網友回復:

對不起,無論你那種方法都不會釋放

因為你外面還有字典在用對吧,很明顯微軟不會傻到字典里是新的拷貝。所以既然字典在用那么參考計數不會為0,gc不會把你還在用的東西釋放


當然有所謂的弱參考,但是我們字典都是要占記憶體的,于其糾結釋放不說釋放,不如糾結一下你的專案會不會因為這個字典在運行N小時以后變成一個巨大的記憶體開銷

uj5u.com熱心網友回復:

你領導意思呢,其實是我們可以池化。不new,只從池里取。你現在池化數量是1

不過我個人說呢,其實到不是很嚴重。list是動態記憶體是動態申請的。初始值并非很大。如果你的系統因為申請list而崩潰,我覺著這系統基本無救。就像某些XX園的人說,一個string.format讓我掛了,我依然說如果一個string.format都讓你掛了的話,那么還有什么不會讓你掛?
到了一個string.format都讓你掛的情況,也許一個 stream,一個array,一個new objec都會讓你掛

uj5u.com熱心網友回復:

正常情況下一個new list 初始數量是4. 到真不大

uj5u.com熱心網友回復:

參考 1 樓 wanghui0380 的回復:
對不起,無論你那種方法都不會釋放

因為你外面還有字典在用對吧,很明顯微軟不會傻到字典里是新的拷貝。所以既然字典在用那么參考計數不會為0,gc不會把你還在用的東西釋放


當然有所謂的弱參考,但是我們字典都是要占記憶體的,于其糾結釋放不說釋放,不如糾結一下你的專案會不會因為這個字典在運行N小時以后變成一個巨大的記憶體開銷

我理解是這樣的,new list開辟一塊記憶體。記憶體里村的是gameObjec的位置參考。不確定對不對。放我這個方法執行完了以后,記憶體中指頭gameobject了。其他的都已經洗掉完了。我說的是我理解的第一種。不確定對不對,向您請教下

uj5u.com熱心網友回復:

參考 1 樓 wanghui0380 的回復:
對不起,無論你那種方法都不會釋放

因為你外面還有字典在用對吧,很明顯微軟不會傻到字典里是新的拷貝。所以既然字典在用那么參考計數不會為0,gc不會把你還在用的東西釋放


當然有所謂的弱參考,但是我們字典都是要占記憶體的,于其糾結釋放不說釋放,不如糾結一下你的專案會不會因為這個字典在運行N小時以后變成一個巨大的記憶體開銷

我理解是這樣的,new list開辟一塊記憶體。記憶體里存的是gameObjec的位置參考。不確定對不對。當我這個方法執行完了以后,記憶體中只是剩下了gameobject了。其他的都已經自動洗掉完了。我說的是我理解的第一種。不確定對不對,向您請教下

uj5u.com熱心網友回復:

你只說對了一半,因為物件釋放在托管語言里都是自動管理,釋放的前提是你不用了。所以他有參考計數

說你對了一半那是因為如果那個字典沒用,的確如你所說,參考加一,出方法參考減一,計數為零。gc抽空釋放一下

但是能你add到字典,計數也加一,so,就算你出方法,1+1-1還是1,gc不會釋放。

uj5u.com熱心網友回復:

實際第二種方式,我們是存疑的。

如果外面連續呼叫兩次(不新new這個物件的前提),我想你那個字典里存的東西都是兩個一模一樣的,邏輯有誤

uj5u.com熱心網友回復:

參考 7 樓 wanghui0380 的回復:
實際第二種方式,我們是存疑的。

如果外面連續呼叫兩次(不新new這個物件的前提),我想你那個字典里存的東西都是兩個一模一樣的,邏輯有誤

是的,字典里的東西是一樣的,假設邏輯沒問題的話,兩種方式會有性能差距嗎?那種好一點?還是一樣?

uj5u.com熱心網友回復:

多次在方法中new list也是有問題,假設兩種都呼叫一次呢?

uj5u.com熱心網友回復:

不是杠,我就是好奇

uj5u.com熱心網友回復:

都選擇用C#了,還考慮這些

uj5u.com熱心網友回復:

方法外在物件回收的時候回收
訪法內在函式執行完后回收
不一定是立刻回收,因為垃圾回收是自動的。
要注意,如果另一個類擁有了這個物件參考,會導致生命周期延長。

uj5u.com熱心網友回復:

uj5u.com熱心網友回復:

你這個雖然在方法內創建的物件,但是在這個行程中,還有對這個物件的強參考,顯然是不能對其回收的。
當然你還可以使用弱參考(WeakReference ),這個時候的物件是允許行程訪問,同時也允許垃圾回收器回收。

uj5u.com熱心網友回復:

參考 14 樓 晨易夕 的回復:
你這個雖然在方法內創建的物件,但是在這個行程中,還有對這個物件的強參考,顯然是不能對其回收的。
當然你還可以使用弱參考(WeakReference ),這個時候的物件是允許行程訪問,同時也允許垃圾回收器回收。

強參考‘弱參考該怎區分

uj5u.com熱心網友回復:

兩種其實是一樣的。不要糾結。寫法不同而乙

uj5u.com熱心網友回復:

額,你們領導真是吃的太空。。。。



uj5u.com熱心網友回復:

參考 17 樓 正怒月神 的回復:
額,你們領導真是吃的太空。。。。


沒辦法,沒看著我天天扳博客園粉么。因為這種風氣實在太沒整了,小程式員嘛,喜歡折騰這些玩意也就罷,影響有限,可怕的,現在喜歡把博客園那些瞎折騰的玩意當寶貝的人已經都混成小領導了。這些不看背景關系,就知道別寫try,別寫string+string,別new的博客園粉小領導,殺傷力太大了,整個neter這么搞,那就跟沒得看了

uj5u.com熱心網友回復:

參考 18 樓 wanghui0380 的回復:
Quote: 參考 17 樓 正怒月神 的回復:
額,你們領導真是吃的太空。。。。


沒辦法,沒看著我天天扳博客園粉么。因為這種風氣實在太沒整了,小程式員嘛,喜歡折騰這些玩意也就罷,影響有限,可怕的,現在喜歡把博客園那些瞎折騰的玩意當寶貝的人已經都混成小領導了。這些不看背景關系,就知道別寫try,別寫string+string,別new的博客園粉小領導,殺傷力太大了,整個neter這么搞,那就跟沒得看了


是啊,對比java,人家討論用什么組件,
討論ribbitmq和kafka的使用場景,
討論微服務,
討論docker。

.net 領導在討論這。。。。。

uj5u.com熱心網友回復:

參考 19 樓 正怒月神 的回復:
Quote: 參考 18 樓 wanghui0380 的回復:
Quote: 參考 17 樓 正怒月神 的回復:
額,你們領導真是吃的太空。。。。


沒辦法,沒看著我天天扳博客園粉么。因為這種風氣實在太沒整了,小程式員嘛,喜歡折騰這些玩意也就罷,影響有限,可怕的,現在喜歡把博客園那些瞎折騰的玩意當寶貝的人已經都混成小領導了。這些不看背景關系,就知道別寫try,別寫string+string,別new的博客園粉小領導,殺傷力太大了,整個neter這么搞,那就跟沒得看了


是啊,對比java,人家討論用什么組件,
討論ribbitmq和kafka的使用場景,
討論微服務,
討論docker。

.net 領導在討論這。。。。。

雖然我很想成為大佬,這么多年過去了。我只是越來越大了,,,,,,

uj5u.com熱心網友回復:

我沒到那個高度,我想問問大佬們開發不考慮性能這塊嗎?
我個人認為,小的地方都把握住了,寫出來的東西不會有問題的

uj5u.com熱心網友回復:

參考 21 樓 舌尖上的中國001 的回復:
我沒到那個高度,我想問問大佬們開發不考慮性能這塊嗎?
我個人認為,小的地方都把握住了,寫出來的東西不會有問題的


網上有個段子:
如何快速惹怒一位醫生----------回答:我從百度看的

俺們這里其實也一樣
如何快速惹怒一個程式員--------回答:我從博客園看的

你應該學會的是專業,學會邏輯,學會分析問題,而不是看天天去看那些毫無背景關系分析,完全不靠邏輯,就靠各種嚇唬人的博文寫代碼
比如說下面這些玩意:
《什么0202年,你還這樣》
《10分鐘搞定hr》
《你離高手就差一個xxx》

---------------------------
你都說了,你只是10分鐘搞定了hr,你都說了就差一個xxx。我們前面也批了,這里動則多執行緒,動則多執行緒,動則invoke,invoke,原因在那里啊。還不是在那些博文身上
《10分鐘搞定多執行緒》
《什么0202年,你還不會invoke》
《你離血案,就差一個性能》
-----------------------------------------
只有傻子才靠百度治病,也只有傻子才靠那些博文寫代碼,搞定hr

uj5u.com熱心網友回復:

參考 22 樓 wanghui0380 的回復:
Quote: 參考 21 樓 舌尖上的中國001 的回復:
我沒到那個高度,我想問問大佬們開發不考慮性能這塊嗎?
我個人認為,小的地方都把握住了,寫出來的東西不會有問題的


網上有個段子:
如何快速惹怒一位醫生----------回答:我從百度看的

俺們這里其實也一樣
如何快速惹怒一個程式員--------回答:我從博客園看的

你應該學會的是專業,學會邏輯,學會分析問題,而不是看天天去看那些毫無背景關系分析,完全不靠邏輯,就靠各種嚇唬人的博文寫代碼
比如說下面這些玩意:
《什么0202年,你還這樣》
《10分鐘搞定hr》
《你離高手就差一個xxx》

---------------------------
你都說了,你只是10分鐘搞定了hr,你都說了就差一個xxx。我們前面也批了,這里動則多執行緒,動則多執行緒,動則invoke,invoke,原因在那里啊。還不是在那些博文身上
《10分鐘搞定多執行緒》
《什么0202年,你還不會invoke》
《你離血案,就差一個性能》
-----------------------------------------
只有傻子才靠百度治病,也只有傻子才靠那些博文寫代碼,搞定hr

不會的問題-百度-博客 無解啊

uj5u.com熱心網友回復:

可以查一下.net 垃圾回識訓制
每個物件會有個屬性來記錄自己被參考的數量,垃圾回收時候回判斷物件是否此物件沒有用了,如果沒有用,就回收調.
所以,你判斷下,你這兩種情況宣告的物件,在執行完方法后,是否還有其他物件參考呢?
第一種:pool1參考了吧?那只要pool1不釋放或者不移除tmp1,tmp1就不會被垃圾回收,直到行程結束后.
第二種:沒看到參考的地方,不好判斷,但判斷原理一樣.

uj5u.com熱心網友回復:

參考 9 樓 舌尖上的中國001 的回復:
多次在方法中new list也是有問題,假設兩種都呼叫一次呢?

很明顯第一種假設外部無參考的情況下,呼叫結束后就會被標記釋放,但是第二種要在當前物件釋放后List才會被釋放

uj5u.com熱心網友回復:

參考 24 樓 ziqi0716 的回復:
可以查一下.net 垃圾回識訓制
每個物件會有個屬性來記錄自己被參考的數量,垃圾回收時候回判斷物件是否此物件沒有用了,如果沒有用,就回收調.
所以,你判斷下,你這兩種情況宣告的物件,在執行完方法后,是否還有其他物件參考呢?
第一種:pool1參考了吧?那只要pool1不釋放或者不移除tmp1,tmp1就不會被垃圾回收,直到行程結束后.
第二種:沒看到參考的地方,不好判斷,但判斷原理一樣.

要是這樣說的話,兩種都是有應用得。

uj5u.com熱心網友回復:

學習收藏了。順便說下個人習慣: 如果這個變數(這里是字典)頻繁使用,我就會定義在VOID外,對于本CLASS內的所有VOID來說它就是PUBLIC了;如果只用一次或者偶爾用一下,我會把它定義在VOID內,那么它對于VOID屬于PRIVATE,所以我感覺該VOID執行完畢后它會釋放的。 

uj5u.com熱心網友回復:

第一個邏輯比較清晰,dic里面既然需要傳入一個可以,初始化一個value(那個list),那么value就應該直接new一個,并且長期存在。
第二個,value(也就是那個List)居然是外部復用的,這是個參考型別啊,我都懷疑會不會導致整個字典里面的value是同一個List,嗯,不確定,我沒試過。
你可以嘗試一下,添加幾個字典之后,看看里面的內容是什么。
而且就算第二個方案能用,邏輯也不大對,既然初始化字典了,那么一個新的key,就應該new一個全新的value,為啥要從外部清除了再用。
至于記憶體回收的問題,方法執行完了,整個物件肯定會被回收的,但這個物件,指的并不是眼前的Dic或者List,而是更往外的類,也就是問題上那一串代碼所在的類,因為在此之前,你這個字典肯定是一直在用的。
猜測代碼如下:

//這是一個完整的類,要回收,就是整個回收了。
public class ClassTest{
public Dictionary<string,List<GameObject>> pool1 = new xxxx;
public void GetObject1(xxx){}
public xxx
}
void Main(){
ClassTest test = new ClassTest();
//這里也許你呼叫了GetObject的方法,往字典里面初始化了一個又一個的串列,都不會被回收的。
//一直到你Main執行結束,沒有代碼呼叫test了,整個test,包括里面的字典才會被一起回收掉。
}

不知道GameObject里面大不大,如果不大,然后那個Key不多,也就是你呼叫的的GameObject的次數不多,記憶體是不做考慮的。
如果你New了一個test,然后整個專案都在這個基礎上運行,也就是這個字典不會釋放了,那么就要考慮會不會運行一段時間字典暴漲的問題,而且這樣我比較喜歡設定成靜態變數,干脆就不要釋放字典了。。。
這個問題的基礎是,你的那個name值多不多,如果是有定數的,比如幾十幾百個游戲名字的話,影響就不大,這個叫必須的開銷,你還不能銷毀。
如果這個name值很多,而且進來初始化,然后用一段時間就不用了,那么你就需要考慮銷毀的問題了,嗯,是手動銷毀,比如從字典里面remove那些不用的key,不知道具體應用場景,就不去思考太多了。

uj5u.com熱心網友回復:

參考 28 樓 張天星 的回復:
第一個邏輯比較清晰,dic里面既然需要傳入一個可以,初始化一個value(那個list),那么value就應該直接new一個,并且長期存在。
第二個,value(也就是那個List)居然是外部復用的,這是個參考型別啊,我都懷疑會不會導致整個字典里面的value是同一個List,嗯,不確定,我沒試過。
你可以嘗試一下,添加幾個字典之后,看看里面的內容是什么。
而且就算第二個方案能用,邏輯也不大對,既然初始化字典了,那么一個新的key,就應該new一個全新的value,為啥要從外部清除了再用。
至于記憶體回收的問題,方法執行完了,整個物件肯定會被回收的,但這個物件,指的并不是眼前的Dic或者List,而是更往外的類,也就是問題上那一串代碼所在的類,因為在此之前,你這個字典肯定是一直在用的。
猜測代碼如下:

//這是一個完整的類,要回收,就是整個回收了。
public class ClassTest{
public Dictionary<string,List<GameObject>> pool1 = new xxxx;
public void GetObject1(xxx){}
public xxx
}
void Main(){
ClassTest test = new ClassTest();
//這里也許你呼叫了GetObject的方法,往字典里面初始化了一個又一個的串列,都不會被回收的。
//一直到你Main執行結束,沒有代碼呼叫test了,整個test,包括里面的字典才會被一起回收掉。
}

不知道GameObject里面大不大,如果不大,然后那個Key不多,也就是你呼叫的的GameObject的次數不多,記憶體是不做考慮的。
如果你New了一個test,然后整個專案都在這個基礎上運行,也就是這個字典不會釋放了,那么就要考慮會不會運行一段時間字典暴漲的問題,而且這樣我比較喜歡設定成靜態變數,干脆就不要釋放字典了。。。
這個問題的基礎是,你的那個name值多不多,如果是有定數的,比如幾十幾百個游戲名字的話,影響就不大,這個叫必須的開銷,你還不能銷毀。
如果這個name值很多,而且進來初始化,然后用一段時間就不用了,那么你就需要考慮銷毀的問題了,嗯,是手動銷毀,比如從字典里面remove那些不用的key,不知道具體應用場景,就不去思考太多了。

實際上它只會存在一會,比如在某個玩家點擊了某個按鈕后,出現,退出這個功能是他是會銷毀得。字典remove是,里邊得物件也要手動得Destroy掉

uj5u.com熱心網友回復:

結把,程式員應該關注邏輯。而不要整天把心思花在這些低級的技術/技巧爭論上,爭贏了爭不贏有意義么,我們面對不加班編程(邏輯不出錯,系統穩定,擴展強),不面對簡歷編程(滿嘴跑名詞,忽悠死HR在說)

打架最后靠的都是,力量,速度,反應能力,神經反射速度,肌肉記憶能力。而不是靠著什么啊,人家黑虎掏心,看看你錯把,你應該用五連鞭,不應該用白鶴亮翅

uj5u.com熱心網友回復:

第一種是方法變數,方法執行完,list里就沒有值了,但是不會釋放,第二種是類變數,執行完方法,list里的值不會丟。但是也不會自動釋放

uj5u.com熱心網友回復:

一個是全域變數,一個是區域變數  這不就區別出來了嗎,如果這個方法不被其他類呼叫那沒事,如果是被其他類呼叫的那不就有事了嗎,每次來調這個類中任意一個方法都會new list集合   因為是全域,  如果寫在方法里面,就只會在呼叫這個方法的時候才會new 這個lisT集合。

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/9885.html

標籤:C#

上一篇:C#如何控制用戶請求數?

下一篇:dataGridView頁面相互傳值

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more