Time of Update: 2018-12-03
//ThreadPool(線程池)是一個靜態類,它沒有定義任何的構造方法(),我們只能夠使用它的靜態方法,這是因為,這是因為ThreadPool是託管線程池,是由CLR管理的。//ThreadPool使用WaitCallback委託,它所要做的工作是在後台進行的。使工作項目的排隊和運行更容易,可以給工作者線程傳遞一個狀態物件(提供資料)。狀態物件是私人的範圍位於線程層,所以不需要進行同步。//ThreadPool目標是為了減除線程的初始化開銷,實現平行處理。.NET類庫中的ThreadPool是
Time of Update: 2018-12-03
1.原因前段時間需要使用OpenFileDialog選擇檔案夾,google上有c#的辦法,比較簡單,只要設定Filter=亂七八糟的符號,讓所有檔案都顯示不出來就可以。但是這樣總是有點不舒服。讓我想起過去在MFC模式下建立的VC的OpenFileDialog定製,需要使用到資源檔(因為系統函數中要求你提供你的模板ID). c#也可以實現,但是必須內建res檔案,這點非常麻煩,可以看這裡:http://blog.csdn.net/norsd/article/details/8840761,
Time of Update: 2018-12-03
struct 和 class 的區別最重要的就是 value 和 object 區別了.但是最近發現另外一個有趣的現象,但是很重要.一個工程中,因為需要各種結構,於是在開始使用了 struct , 但是覺得有點麻煩,值傳遞的話,消耗很多,又不喜歡 ref (因為我喜歡寫泛型函數)於是採用了 class , 接下來順風順水 , 直到..... [Serializable] // 指示可序列化 [StructLayout(LayoutKind.Sequential, CharSet =
Time of Update: 2018-12-03
var typeList = typeof(List<>); Type typeDataList = typeList.MakeGenericType(datatypeTarget.DataObjectType); var vtData = typeDataList.InvokeMember(null, BindingFlags.DeclaredOnly |
Time of Update: 2018-12-03
Time of Update: 2018-12-03
而一般我們所謂的演算法的效能主要是指演算法的複雜度,一般用O方法來表示。在後面我將給出詳細的說明。 對於排序的演算法我想先做一點簡單的介紹,也是給這篇文章理一個提綱。 我將按照演算法的複雜度,從簡單到難來分析演算法。 第一部分是簡單排序演算法,後面你將看到他們的共同點是演算法複雜度為O(N*N)(因為沒有使用word,所以無法打出上標和下標)。 第二部分是進階排序演算法,複雜度為O(Log2(N))。這裡我們只介紹一種演算法。另外還有幾種演算法因為涉及樹與堆的概念,所以這裡不於討論。
Time of Update: 2018-12-03
1, 請你說說.NET中類和結構的區別? 答:結構和類具有大體的文法,但是結構受到的限制比類要多。結構不能申明有預設的建構函式,為結構的副本是又編譯器建立和銷毀的,所以不需要預設的建構函式和解構函式。結構是實值型別,所以對結構變數所做的改變不會影響其的原值,而類是應用類型,改變其變數的值會改變其原值。申明結構用Struck關鍵字,申明類用class關鍵字,向方法傳遞結構是時是通過值傳遞的,而不是通過引用。與類不同,結構的執行個體化可以不使用New關鍵字。類可以實現介面。 2,
Time of Update: 2018-12-03
【C#】字元轉ASCII碼,ASCII碼轉字元 字元轉ASCII碼:public static int Asc(string character) { if (character.Length == 1) { System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); int intAsciiCode = (int)asciiEncoding.GetBytes(character)[
Time of Update: 2018-12-03
C#播放聲音的5種方法介紹 第一種是利用DirectX 1.安裝了DirectX SDK(有9個DLL檔案)。這裡我們只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll2.引入DirectX 的DLL檔案的名字空間: using Microsoft.DirectX; using Microsoft.DirectX.DirectSound;3.建立裝置Device dv=new
Time of Update: 2018-12-03
一:版本號碼升級 1、ProductCode、Version(version比前一版本要高比如以前1.0.0現在就是1.0.1), 2、保持UpgradeCode不變(當設定RemovePreviousVersion=true時就是靠它來找到卸載舊版本)二:配置版本檢測 1、置detectnewerinstalledversion=true(自動檢測新版本,如果裝了高版本再安裝低版本則提示不讓安裝),
Time of Update: 2018-12-03
DateTime 數字型 System.DateTime currentTime=new System.DateTime(); 1 取當前年月日時分秒 currentTime=System.DateTime.Now; 2 取當前年 int 年=currentTime.Year; 3 取當前月 int 月=currentTime.Month; 4 取當前日 int 日=currentTime.Day; 5 取當前時 int 時=currentTime.Hour; 6 取當前分 int
Time of Update: 2018-12-03
一般來說一個 HTML 文檔有很多標籤,比如“<html>”、“<body>”、“<table>”等,想把文檔中的 img 標籤提取出來並不是一件容易的事。由於 img 標籤樣式變化多端,使提取的時候用程式尋找並不容易。於是想要尋找它們就必須寫一個非常健全的Regex,不然有可能會找得不全,或者找出來的不是正確的 img 標籤。我們可以從 HTML 標籤的格式去想應該怎麼建這個Regex。首先要想一下 img 標籤有幾種寫法,忽略大小寫不看的話,下面列出
Time of Update: 2018-12-03
[ThreadStaticAttribute] static int currId;double dValue = unchecked( (double)nValue));Thread.Sleep和Timer效能比較應該是Thread.Sleep比較好http://www.cnblogs.com/dataflow/archive/2009/03/11/1408731.htmllambda的一個應用Thread t1 = new Thread(() => {
Time of Update: 2018-12-03
一般而言DllImport 是十分方便的,但是當出現錯誤時,他給出的錯誤也十分模糊,同時是不全面的。比如,之前就遇到一個第三方dll, DllImport 死活說找不到這個dll.但是我很確定錯在這個dll,而且路徑也對。沒辦法,只能做個vc調用嘗試,然後vc調用得到了這個訊息:這才發現,原來找不到的其實不是第三方dll,而是這個第三方另外調用的dll,但是c#完全不能得到這個訊息。無奈之下,為了以後方便,只能自己做了個測試函數,來測試裝載第三方dll: public static
Time of Update: 2018-12-03
C#擷取程式路徑的方法中需要注意的地方(版本1)擷取運行程式路徑的方法主要有以下7種:System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName他擷取的是Module的檔案名稱,如果在VS2008的調試環境中,擷取的是
Time of Update: 2018-12-03
奇怪的,添加了一個組件功能, MousePreview , 其中使用了 SetWindowsHookEx , 然後出現了問題:這個問題很奇怪,是一個 delegate 引起的,
Time of Update: 2018-12-03
var arrFiles = oDI.GetFiles("*.dll"); foreach (var fi in arrFiles) { var ass = Assembly.LoadFile(fi.FullName); var arrTypes = ass.GetTypes(); foreach (var type in arrTypes)
Time of Update: 2018-12-03
現在正在做一個語義提取比如從一個類中提取所有public的內容1.保證輸入字串是一個合法的類,以class xxxxx{開始 ,以 };結束2.保證每一個許可權(public,private等)都是在新的一行開始^public\:([\w\W])+?((^\w+\:)|(;\z))最後一行表示: 可以是 另外的許可權,比如private: 結束, 也可以以類的終結結束 ;\z 注意: abc$ 在多行中表示字串的結束,或者是分行符號之前的結束 , 而\z則表示整個輸入字串的結束
Time of Update: 2018-12-03
VC.net 建立 ref class 後 C#調用報錯 Cannot create an instance of the abstract class or interface CS0144同樣的錯誤:http://computer-programming-forum.com/7-vc.net/aa44def3c57690b4.htm發現如上面連結所說,他是vc.net 繼承了一個.net的abstract Class , 但是沒有override 所有應該override的方法所以這個
Time of Update: 2018-12-03
這種事情就是一個字煩人,蛋疼,特別蛋疼。 搞了我一天。方法有幾種,都特別煩,一個是 build event , 一個是 msbuild今天說 build event1.在 Build Events 中 , Pre-build 輸入:copy $(ProjectDir)Time/norlib.Time.Holidays.xml "$(TargetDir)norlib.Time.Holidays.xml"set VCInclude=C:\Program Files