Time of Update: 2018-12-07
之前都是用C#來做Web,沒有用C#做過winform,這幾天抽空做了一個家庭理財系統,系統還是有一定的可用性的,不過在處理form視窗內建的關閉按鈕的時候,不管我是用close()方法,還是用資源回收的方法,那鬼東西死活關不掉,結果是用這個方法關掉的,類似關閉線程,應該還不錯。哇哈哈~ 1 /// <summary> 2 /// 主視窗內建的關閉按鈕 3 /// </summary> 4 ///
Time of Update: 2018-12-07
驗證輸入的正確性public static bool isEmail(string inputEmail){inputEmail = NulltoString(inputEmail);string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";Regex re = new
Time of Update: 2018-12-07
文章目錄 1.1 以生產者-消費者模型設計任務隊列1.2 任務隊列提示使用foreach 代替迭代器利用shared_ptr 實現map/reduce C++ 多線程編程總結 在開發C++程式時,一般在輸送量、並發、即時性上有較高的要求。設計C++程式時,總結起來可以從如下幾點提高效率:l 並發l 非同步l 緩衝下面將我平常工作中遇到一些問題例舉一二,其設計思想無非以上三點。1任務隊列1.1
Time of Update: 2018-12-07
文章目錄 1. 閑序2. 定義idl檔案3. 使用idl 代碼產生器產生訊息定義c++ 標頭檔4. 使用產生的C++ 訊息標頭檔 5. 邏輯層處理訊息6. More 1. 閑序 遊戲伺服器之間通訊大多採用非同步訊息通訊。而訊息打包常用格式有:google protobuff,facebook thrift,
Time of Update: 2018-12-07
文章目錄 1. 詞法分析2. 文法分析3. 訊息體結構管理4. 中間代碼產生5. TODO 前一篇blog中講了如何在C++中實現訊息的自動派發,而關鍵點在於如何?通過IDL檔案自動產生msg_dispatcher模板類。有幾個網友提醒我idl解析器會比較難寫,事實卻是如此。我第一個版本的idl解析器本來只是想做demo只用。花了一個晚上時間拼湊了幾個python函數,msg_dispatcher類倒是能產生,但解析器的代碼太混亂了,
Time of Update: 2018-12-07
Chaos是一個基於Linux平台, reactor模式的網路事件庫, 目前僅支援TCP傳輸協議, 僅在x86_64下編譯, 並遵循3-clause BSD開源協議. 在使用上, 可以說它很像boost asio, 可能是由於我對boost asio的介面設計很有愛吧, 而且對於boost asio在非同步編程方面的思想, 我個人也比較認同, 但至今我也沒有仔細閱讀過boost
Time of Update: 2018-12-07
文章目錄 1. 用例2. 使用IDL 產生 C++ 代碼:3. encode 和 decode 如何? 4. TODO 《C++ 訊息自動派發》系列上篇介紹了IDL解析器,產生的C++代碼只支援JSON轉C++ struct。 經過新的重構,這次增加了對C++ struct 轉JSON的支援。IDL解析器自動為C++ struct產生兩個方法。 decode:實現json 轉C++ struct 轉。 encode:實現C++
Time of Update: 2018-12-07
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->string mailContent="郵件內容";MailMessage msg = new System.Net.Mail.MailMessage();msg.To.Add("******@gmail.com"); //收件者//寄件者資訊msg.From = new MailAddress("**
Time of Update: 2018-12-07
今天要實現模板類,尋找一些資料,發現非常有意思,估計對大家有協助,所以共用一下。 using System;using System.Collections.Generic;using System.Linq;using System.Text; using Emgu.CV; namespace VSL.Plugin.TrackingSystem.GaitAnalysisTrackingSystem{ /// <summary> /// 背景估計模型 /
Time of Update: 2018-12-07
using System;using System.Collections.Generic;using System.Text;using Emgu.Util;using System.Runtime.InteropServices;using Emgu.CV.Structure; namespace Emgu.CV{ /// <summary> /// Background statistics model /// </summary> public
Time of Update: 2018-12-07
編輯器載入中...使用python的時候預設str 對字串操作支援非常豐富,相信每個C++程式員都自己寫過string的strim、split、replace,寫個小工具函數,留著用,以前偷懶,寫了好幾次,這次總結一下,貼出來。 #include <iostream>#include <vector>using namespace std;namespace strtool{string trim(const string& str){
Time of Update: 2018-12-07
在進行memcpy操作時,雖然是記憶體操作,但是仍然是耗一點點CPU的,今天測試了一下單線程中執行memcpy的效率,這個結果對於配置TCP epoll中的work thread數量有指導意義。如下基於8K的記憶體快執行memcpy, 1個線程大約1S能夠拷貝500M,如果伺服器頻寬或網卡到上限是1G,那麼網路io的work thread 開2個即可,考慮到訊息的解析損耗,3個線程足以抗住硬體的最高負載。在我到測試機器上到測試結果是:Intel(R) Xeon(R) CPU
Time of Update: 2018-12-07
文章目錄 1. 情境設定2. 伺服器模組設計 3. 總結 前一篇blog 講了如何?IDL 解析器,本篇通過IDL解析器構建一個聊天伺服器程式。本程式用來測試IDL解析器的功能,網路層使用前邊blog中介紹的ffown庫。我們只需定義chat.idl檔案,idl解析器自動產生訊息排放代碼,省了每次再去繁瑣的編寫訊息解析、判斷代碼。 IDL解析器介紹:http://www.cnblogs.com/zhiranok/archive/201
Time of Update: 2018-12-07
文章目錄 摘要: 摘要: 很多場合之所以使用C++,一方面是由於C++編譯後的native code的高效效能,另一方面是由於C++優秀的並發能力。並行方式有多進程 和多線程之分,本章暫且只討論多線程,多進程方面的知識會在其他章節具體討論。多線程是開發C++伺服器程式非常重要的基礎,如何根據需求具體的設計、分配線程以及線程間的通訊,也是伺服器程式非常重要的部分,除了能夠帶來程式的效能提高外,若設計失誤,則可能導致程式複雜而又混亂,
Time of Update: 2018-12-07
摘要:XML是結構化的標記語言,經常被用來做設定檔。由於XML的具有非常強的自描述屬性,使用XML的設定檔往往直觀易懂。C++中解析XML已經有一些非常成熟的類庫可以使用,TinyXml是最受歡迎的解析類庫之一。儘管TinyXml已經已經封裝瞭解析細節,但是解析、遍曆Xml仍然是稍顯繁瑣。FFXML針對如下需求對TinyXml做了輕量封裝:只把XML當成設定檔,也就是說,只有對XML的讀取操作,在我日工作中,都是用XML當做純設定檔,把XML當成序列化檔案或資料檔案的情況少之又少。XML設定檔不
Time of Update: 2018-12-07
文章目錄 多線程與並發非同步訊息/介面調用訊息的序列化與Reflection效能最佳化單元測試訊息時序圖如何註冊服務和介面訊息定義的規範關於效能
Time of Update: 2018-12-07
摘要:資料分析已經變得不可或缺,幾乎每個公司都依賴資料分析進行決策。在我從事的網遊領域,資料分析是策劃新功能、最佳化遊戲體驗最重要的手段之一。網遊領域的資料分析有如下特點(開發角度):資料量大;網遊使用者量大,使用者行為多,儲存資料量較大。即時性要求高;比如新上的遊戲功能,玩家體驗和反饋希望儘快的被分析出來。需求變化快。網遊的需求變化日新月異,故要求資料分析系統能夠快速的響應需求變化。常見的資料分析系統資料分析系統應該分為資料存放區和資料分析,常見的資料分析架構有:直接在邏輯服務中定製資料分析;
Time of Update: 2018-12-07
摘要: 儘管C++ 野指標和記憶體流失一直被詬病,但是在即時性很強的應用場合,c++ 仍然是不二之選。遊戲伺服器開發仍然使用c++ 作為主語言,但是大多結合動態指令碼技術,一方面規避了野指標和記憶體泄露,一方面獲得了開發效率和擴充性的紅利。但指令碼技術不是本文的討論重點,事實上關於c++ 與
Time of Update: 2018-12-07
Window 上MS VS一統天下,從VC6,VS2005,VS2008,一直到VS2010. 很久以前以為C/C++開發環境就只有MS。 當轉到Linux 上面時,才發現大錯特錯。 IDE,大有選擇。 就記錄自己用到C/C++的IDE. 1. VIM/make/gdb/valgrind/profiler 開始之前不得不提一下,最淳樸的工具鏈。雖然開始時花的時間多,但是覺得是值得的。 Vim 編輯器的神之美稱,make/scons/cmake 的編譯工具,gdb/ddd
Time of Update: 2018-12-07
C++ 有許多features( abstract class, virtual deconstuctor,RTTI, virtual inheritance)完全用C 去類比一個C++ 其實是很難。 下面列一個表,如何用C 去類比C++的一些主要功能:Feature in C++ Implemented in C Class structure data member data member static_ data member