原创 [C#] WebClient性能優化

WebClient缺省是爲了安全和方便,不是爲了性能。所以,當你打算做壓力測試的時候,就會發現WebClient很慢。WebClient性能很差,主要原因有:1、它缺省會使用IE的代理設置,而IE的代理設置默認是‘自動檢測’。這意味着每個

原创 [C#] 用ServiceStack讀寫redis的性能問題

ServiceStack.Redis有個方法叫 AddRangeToList,這個方法是有性能問題的。這個方法的實現代碼如下:public void AddRangeToList(string listId, List<string> v

原创 [C#] ServiceStack.Redis如何批量的pop數據?

要安全的批量pop數據,有兩個辦法:1、用事務(不用事務的話可能導致重複讀。ServiceStack的pipeline是沒有自帶事務的。)2、執行lua腳本我這裏提供用事務的實現方法:public static string ReadLi

原创 [C#] 如何把void*轉換爲byte[]

一般來說,C#庫的對外接口應該提供byte[]這樣比較容易用的接口,而不應該提供裸的void*但是有些庫確實是這麼封裝的。那麼就有一個如何轉換的問題。MSDN推薦的轉換方式是使用UnmanagedMemoryStream。代碼如下:byt

原创 [C#] Parallel.For的線程數

Parallel.For會自動判斷同時運行多少個線程,但你也可以進行干預。ParallelOptions可以設置Parallel.For最大的併發線程。缺省的最大線程數是CPU核數。這通常是不夠多的。Parallel.For的線程數通常是

原创 下載文件時火狐總是提示“已屏蔽:可能含有病毒或間諜軟件”

下載文件時火狐總是提示“已屏蔽:可能含有病毒或間諜軟件”,這可能是windows defender做的好事。windows defender會把winloader等軟件當作是間諜軟件。因此,簡單的處理方法就是把windows defend

原创 如何獲取gitlab裏面所有項目的代碼

背景 現在越來越多的公司採用gitlab來管理代碼。gitlab有個問題,免費版不支持全局代碼搜索,這很麻煩。如果把代碼全部clone到本地就可以方便的進行各種搜索了。可是gitlab也不提供git clone所有項目的功能。 公司越來越

原创 [C#] 使用WebSocket進行通訊

客戶端客戶端很簡單string url = "ws://localhost:24900/" + "test.ashx"; try { System.Net.WebSockets.ClientWebSocket cln = new Sy

原创 notepad++常用設置

notepad++是個很好用的文本編輯工具,但是他有些默認設置很令人討厭。設置notepad++的語言:Settings->General->Localization不要記住上次打開的文件:設置-》首選項-》備份-》記住最後打開的文件不要

原创 [C#] 不同類型的對象之間快速拷貝(比反射快十倍)

/// <summary> /// 在兩個不同的類型之間,快速的拷貝 /// </summary> public static class FastCopy { static Action<S, T> CreateCopier<S, T

原创 [C#] vs2017的文本可視化工具不能顯示內容了

visual studio 2017的‘文本可視化工具’(text visualizer)在某些情況下有可能會只顯示變量名稱,而不顯示文本的內容。 這是vs2017的一個bug,他們搞錯了這個對話框的minimal size。 手動把‘文

原创 [C#] Newtonsoft.Json 版本衝突

在web.config或者app.config裏面加上一段:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembl

原创 [C#] Date類型

很多人提出C#需要有個單獨的Date類型,以便乾淨的處理日期。微軟的人聲稱Datetime類型是Date類型的超集,所以沒有必要單獨的Date類型。但很多人明顯並不認可這個答案。下面是我提供的一個Date class實現,給需要的同學:u

原创 [ASP.NET] 修改web站點的默認編程語言

當你點右鍵新建web窗體或者新建類的時候,默認編程語言是什麼?有時候是C#,有時候是VB。你找遍了所有配置,從web.config到iis express配置到sln文件,硬是沒找到vs如何決定編程語言的。讓我們一起對微軟豎起中指:vis

原创 當visual studio的數據庫項目遇到SQL71501

這是由於數據庫項目缺少login用戶。加上就好了,注意要加sql server用戶。