拋棄你的timer組件,直接利用內核級的重疊IO開發你的硬體,并且可以利用執行緒池設計你更多的想法,該封裝只限于技術交流
鏈接:https://pan.baidu.com/s/1BNZI5EOG1LaYWcgj_UGIpg
提取碼:zjnw
uj5u.com熱心網友回復:
這個執行緒池對于Task和直接用Thread ThreadPool優勢在哪呢uj5u.com熱心網友回復:
這么重量級,為什么不扔到git上,讓大家直接評判。uj5u.com熱心網友回復:
你去實驗一下就知道了,具體優勢在哪里你自己測驗uj5u.com熱心網友回復:
希望大家可以提供BUG供我來修改uj5u.com熱心網友回復:
開源請上github,如果上這里困難起碼也上 碼云百度網盤開源真的不合適
uj5u.com熱心網友回復:
壓縮包里面有代碼,有檔案。uj5u.com熱心網友回復:
這個干嘛用的??uj5u.com熱心網友回復:
是我打開的方式不對嗎? 我下載下來 提示壓縮包錯誤 下了幾次 都如此.另外真的考慮一下1#的說法.. 你既然能寫出來好東西.. 最起碼 也得有幾句介紹吧.
優勢在哪?
uj5u.com熱心網友回復:
1.我下下來后程式編譯不過2.你說操作簡單 是不是與C#原生執行緒模型Thread ThreadPool Task比較一下 你的優勢在哪 而不是讓我們自己去體會 因為大部分人用上述三種已經很熟練額
3.是不是提供一個使用示例要好一點
uj5u.com熱心網友回復:
還有我用的是VS2013uj5u.com熱心網友回復:
visual studio 2017 編譯平臺為X64 或者 X86 不能使用anycpu,該執行緒池使用的是內核級執行緒,根本不是C#使用的執行緒,IO模型采用IOCP模型設計,在操作串口方面表現優秀,另外,在使用該執行緒池根本不用擔心調度問題,這個資源的調度是由內核智能分配的。uj5u.com熱心網友回復:
.net需4.5.2或以上版本。uj5u.com熱心網友回復:
不懂做什么用的uj5u.com熱心網友回復:
直接放在github上。說不定就火了呢uj5u.com熱心網友回復:
真是太有用了!贊!uj5u.com熱心網友回復:
為什么不放git?uj5u.com熱心網友回復:
C#使用的執行緒不是內核級的嘛? 在串口上操作用IOCP模型未免浪費了吧。串口的通信量不會太大。
uj5u.com熱心網友回復:
內核級?? 這就厲害了,,uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
挺好的。不過既然有內核級和用戶級執行緒的區別
那么就是有利有弊的。
uj5u.com熱心網友回復:
內核級?? 這就厲害了,,uj5u.com熱心網友回復:
學習了,感謝,感謝uj5u.com熱心網友回復:
hengaoxing很高興來到這里uj5u.com熱心網友回復:
希望大家多多測驗,反饋給我BUG,我來繼續優化。郵箱 [email protected]uj5u.com熱心網友回復:
附加一份利用該執行緒池做的簡易Socket服務器,經測驗,5000并發連接CPU資源依然保持在8.2%以下,比較可觀。class Program
{
static void Main(string[] args)
{
ThreadPool threadPool = new ThreadPool();
threadPool.AdjustWorkMode(ThreadPoolMode.EFFICIENT);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(new IPEndPoint(IPAddress.Any, 15000));
server.Listen(100);
while (true)
{
Socket client = server.Accept();
var workerobj = new MyClass(client);
Worker worker = threadPool.CreateWorker(WorkerType.XR_TP_TYPE_ASYNC, workerobj, null);
threadPool.SubmitWorker(worker, null);
}
}
}
class MyClass : IAsyncContext
{
private Socket client;
private bool isread;
public MyClass(Socket client)
{
this.client = client;
}
public bool Before(IntPtr instance,IntPtr work)
{
Console.WriteLine("client :"+client.RemoteEndPoint+" is connected!");
return true;
}
public bool Process(IntPtr instance, IntPtr work)
{
try
{
int length = client.Available;
byte[] buffer = new byte[length];
int r = client.Receive(buffer, length, SocketFlags.None);
if (r == 0 && isread)
{
client.Shutdown(SocketShutdown.Both);
Console.WriteLine("client :" + client.RemoteEndPoint + " is disconnected!");
return true;
}
if (r == 0 && !isread)
{
isread = client.Poll(100, SelectMode.SelectRead);
}
if (r > 0)
{
isread = false;
//TODO 接收到資料并且進行處理
string resutl = Encoding.UTF8.GetString(buffer);
Console.WriteLine(resutl);
}
Process(instance,work);
}
catch (Exception e)
{
client.Shutdown(SocketShutdown.Both);
}
return true;
}
public void After(IntPtr instance, IntPtr work)
{
Console.WriteLine("client " + client.RemoteEndPoint + " is disconnected!");
}
}
uj5u.com熱心網友回復:
或許是個好東西,但是框架版本太高了.uj5u.com熱心網友回復:
好東西!!!!uj5u.com熱心網友回復:
Mark收藏一下uj5u.com熱心網友回復:
學習了,謝謝!!!uj5u.com熱心網友回復:
光dll沒的代碼??uj5u.com熱心網友回復:
這些日子在做naked socket,弄完了將發布高效服務器底層支持,完善微軟未包裝的內核級網路通訊,屆時大家幫忙測驗哈。uj5u.com熱心網友回復:
內核級是什么概念,直接呼叫了API就是內核級?
uj5u.com熱心網友回復:
看了半天,還沒完全看懂,回頭看完再來回帖。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
操作硬體?我想讓我的CPU溫度達到200度 能辦到嗎?
uj5u.com熱心網友回復:
學習了感謝分享uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
學習了,雖然不太能看懂uj5u.com熱心網友回復:
能說出來與微軟現有的task優勢在哪里,這樣大家會更有興趣uj5u.com熱心網友回復:
微軟的task也好 thread也好 都是用戶級的執行緒,并且微軟的threadpool要想使用高性能必須使用非安全代碼,而且高性能只封裝了一半的異步作業模型,在處理重疊IO,等待模式上根本不可能實作。另外在運行重量級上也體現明顯,task在運行程序中消耗的資源太大,這個微軟也有明確的說明,這次公布的執行緒池,完全從內核直接封裝,并且針對于內核的安全做了一定的措施,具體的希望大家能夠多測驗,盡早找出BUG進行修復,等完全修復了將在GIT上公布源代碼。uj5u.com熱心網友回復:
很好的大猩猩哦 !!!!!uj5u.com熱心網友回復:
積個贊銜,,,加點分uj5u.com熱心網友回復:
神器,正需要uj5u.com熱心網友回復:
最近綜合了大家的反饋資訊,執行緒池沒有出現BUG級的更改,適當的我們會在7月份進一步完善針對于網路的IO模型,屆時會在codeplex上公開我們的源代碼,謝謝大家uj5u.com熱心網友回復:
學習了,感謝!uj5u.com熱心網友回復:
厲害了,雖然覺得沒啥用uj5u.com熱心網友回復:

最近有人跟我說這個東西做出來對于C#沒啥用,我只能呵呵對待了。
uj5u.com熱心網友回復:
很好,學習了學習了uj5u.com熱心網友回復:
支持一下,開源到github吧uj5u.com熱心網友回復:
不錯不錯。學習了uj5u.com熱心網友回復:
客戶XP的比較多,用不上啊uj5u.com熱心網友回復:
看上去很厲害,我用慣了taskuj5u.com熱心網友回復:
學習了。。。。。。。。。。。。。uj5u.com熱心網友回復:
希望大家能夠反饋BUG,我們努力的去完善該產品,以備后期開源。uj5u.com熱心網友回復:
很好的大猩猩哦 !!!!!uj5u.com熱心網友回復:
發到吾愛破解論壇,看的人多uj5u.com熱心網友回復:
我覺得你頭像很可愛
uj5u.com熱心網友回復:
使用了這個類別庫就必須用x86或者x64?anycpu就不可以了?uj5u.com熱心網友回復:
不懂,支持一下uj5u.com熱心網友回復:
不錯耶,你們都在這里uj5u.com熱心網友回復:
Java怎么弄呀?uj5u.com熱心網友回復:
來支持,不明覺厲。uj5u.com熱心網友回復:
mark下,國慶后有空了看uj5u.com熱心網友回復:
其實可以自己試一下uj5u.com熱心網友回復:
你原始碼都沒有,讓大家怎么試?uj5u.com熱心網友回復:
感謝樓主無私分享轉載請註明出處,本文鏈接:https://www.uj5u.com/net/63504.html
標籤:C#
