/******************************************************************************** * * 在主程序中創建一個子程序,并在父進程中獲取系統時間,并寫入管道,子程序從管道中讀取數據 * author:jindouliu20 ...
引言 最近看一些代碼的時候,發現有人用 System.Collections.Concurrent 下的 BlockingCollection 很便利的實現了生產者 - 消費者模式,這是之前沒有注意到的,之前只關注過 ConcurrentQueue<T> 、ConcurrentStack<T> 或 ...
一:背景 1. 講故事 如何跟蹤.NET程序的mmap泄露,這個問題困擾了我差不多一年的時間,即使在官方的github庫中也找不到切實可行的方案,更多海外大佬只是推薦valgrind這款工具,但這款工具底層原理是利用模擬器,它的地址都是虛擬出來的,你無法對valgrind 監控的程序抓dump,并且 ...
在現代 Web 應用中,實時通信變得越來越重要。無論是聊天應用、在線游戲、股票行情推送還是協作編輯工具,都需要服務器能夠主動向客戶端推送數據。在 .NET 生態系統中,WebSocket 和 SignalR 是實現這一功能的兩個主要方案。 本文將對這兩種技術進行比較,分析它們的異同點和使用場景,并提 ...
1. 我有一個netframework4.8的類庫項目,里面提供了一個自定義控件,然后我按照以下方法為控件提供了默認樣式 a) 添加Themes\Generic.xaml文件,文件中提供自定義控件的默認樣式 <Style TargetType="MyControl"> <Setter Propert ...
概述 XiHan.Framework.Utils 是一個功能豐富的 .NET 工具庫,涵蓋了開發中常用的字符串處理、集合擴展、加密解密、分布式ID、文件IO、反射、緩存、線程、系統工具、國際化、網絡、硬件信息、異常、數據過濾、Linq擴展等模塊。 本庫以高內聚、低耦合為設計理念,適用于各類 .NET ...
WPF下拉列表懶加載的控件未找到現成可用的組件,于是自己封裝了一個懶加載和支持模糊過濾的下拉列表控件,控件使用了虛擬化加載,解決了大數據量時的渲染數據卡頓問題。 ...
以下是一個基于 Entity Framework Extensions 的 BulkDelete 高效刪除海量數據的方案,包含性能優化、穩定性保障和錯誤處理機制: csharp using System; using System.Linq; using Z.EntityFramework.Plus ...
進程間通信指的是進程之間的信息交換,進程間通信的方式有很多,比如管道通信、信號通信、共享內存、消息隊列、信號量組、POSIX信號量等。 進程間通信可以達到數據傳輸、共享資源、控制進程等目的,方便用戶對進程進行控制和管理。 管道通信 管道通信采用的是半雙工的通信方式,其中管道在Linux系統下也是文件 ...
項目搭建了一個基礎的框架,實現緩存的AOP攔截,首次查詢從數據庫獲取,再寫入緩存,設置過期時間,再次查詢數據時從緩存獲取。 話不多說我們來上代碼實現: 1.定義緩存的接口和實現類 定義緩存接口ICachingProvider和實現類MemoryCaching: /// <summary> /// 簡 ...
1. 問題 環境是dotnet8及以前的版本,dotnet9+不知道是否還有這個問題(我猜是一樣的)。 如下代碼,在多播委托await異步執行時,不會等待委托方法執行完成,它們在新的線程中運行。 async Task A() { } async Task B() { } Func<Task> fun ...
在實際應用中,經常需要用到數據的導入與導出,而在這些導入導出功能中,最常用的就是Excel格式,它能非常方便的實現格式化數據呈現。目前主流框架大多需要將數據全載入到內存方便操作,但如果數據量過大,這可能會導致內存消耗問題,今天介紹的MiniExcel 嘗試以 Stream 角度寫底層算法邏輯,能讓原... ...
項目背景 甲方本地化上線了我們系統之后,進行安全漏洞掃描 發現了一個問題: 我們的附件路徑 直接通過站點 訪問的 ,在未授權的模式下,可以直接隨意替換路徑里的文件內容,通過瀏覽器拼接鏈接的方式打開系統里的一些附件和圖片內容 因為系統內部 站點 呈現附件 也都是通過這個方式拼接呈現的。 快速調整方案一 ...
C#中委托、事件的好處,只需在某個類中提前定義好公開的委托或事件(委托的特殊表現形式)變量,然后在其它類中就可以很隨意的訂閱該委托或事件,當委托或事件被觸發執行時,會自動通知所有的訂閱者進行消費處理。(觀察者模式用委托來實現是最好不過了,DDD所提倡的事件驅動其根本理念也是如此),當然我這里想到的是 ...
一、過濾器簡介 ASP.NET Core中的過濾器是一種組件,它可以在請求處理管道中的特定階段運行代碼。過濾器有多種類型,包括授權過濾器、資源過濾器、動作過濾器、異常過濾器和結果過濾器。本文中使用的是動作過濾器(Action Filter),它在動作方法執行前后執行,可以用來記錄請求和響應信息。 二 ...
mkdir函數 此函數用于創建一個目錄 //頭文件 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname,mode_t mode); //pathname:目錄的路徑 //mode:目錄的權限 //re ...
將一個字符串轉換成整型數,方便后序的處理 atoi函數 此函數可以將一個字符串轉換成整型 //頭文件 #include <stdlib.h> //函數原型 int atoi(const char *nptr); //nptr:待轉換的字符串的地址 //ret:轉換后的整型數 //注意:轉換的字符串里 ...
使用中發現管理平臺的博客列表無法查看,發現是echarts.min.js引用路徑無效,找到route.config.js之后找到對應的菜單配置項修改對應的路徑為https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js即可,后續考慮是不是修改為本地 ...
strstr函數 此函數用于從目標字符串中查找子串 char *strstr(const char *haystack, const char *needle); //haystack:主字符串,即要搜索的字符串 //needle:子字符串,即要查找的字符串 //ret:如果找到子字符串,返回子字符 ...
進行框架依賴發布的時候,應用程序需要有 dotnet runtime 運行時才能跑起來。在 dotnet 9 之前,通常都是需要安裝到系統的 Program File 文件夾下的全局 dotnet 運行時的支持。在 dotnet 9 時,引入了 AppHostRelativeDotNet 機制,允許... ...