自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(446)
  • 资源 (7)
  • 收藏
  • 关注

原创 使用AoT让.NetFramework4.7.2程序调用.Net8编写的库

如图,简单的dll编译后size是1.3M,因为AoT将所有的依赖库都打包到了DLL内,没有C#运行环境也可以执行。可见AoT编译的dll已经和C或C++编译的dll兼容。注意:AoT仅支持win-x64。

2025-02-28 21:38:48 489

原创 DUMP分析时VS企业版和专业版的区别

网上查询vs分析dump文件,查找托管内存泄露,需要使用“调试托管内存”功能,当前安装的vs2022 专用版找不到这个选项,vs2015时ok的,比较版本发行2022是专业版,2015是企业版。可以看到和断点调试时内存快照相同的对象关系视图。

2025-01-24 23:03:26 511

原创 WinDBG查找C++句柄泄露

代码中构造的mutex泄露,查找!htrace -diff输出内容,找到CPPWindowsProject1!使用lsa CPPWindowsProject1!点击WinDBG左上角的Go按钮继续执行,点击UI上的按钮造成泄露;htrace 或!C++代码(频繁点击About按钮导致Mutex句柄泄露)点击WinDBG左上角的Break按钮进入调试模式;windbg的lsa指令:显式指令对应的源码。找到147行的代码位置。

2025-01-24 17:06:54 588

原创 C#的Task

如果给Task.Factory.StartNew函数传递TaskScheduler.FromCurrentSynchronizationContext()参数,则在主线程上执行;注意:Task.Run和async、await两个关键字兼容,内部也是调用Task.Factory.StartNew实现的;Current:使用启用任务的任务的调度方式(如启动任务的任务调度在主线程执行,新的任务也在主线程执行)优先使用Task.Run,除非有定制化需求才用Task.Factory.StartNew。

2025-01-10 16:10:44 319

原创 Orleans异常传递测试

总结:Grain方法抛异常,不会影响服务端,仅在客户端执行线程异常事件处理函数(本例弹出),服务端的线程异常事件处理函数没有执行(但必须有,否则服务端闪退)。首先在客户端、Silo服务程序的Main方法增加ThreadException事件处理函数,避免未处理异常导致进程闪退。

2024-12-21 22:38:12 183

原创 Orleans使用KafkaStream

如上代码,将服务端和客户端配置中的AddMemoryStream替换为AddKafkaStreamProvider,启动zookeeper和kafka服务,启动orleans服务端和客户端,可成功推送消息。服务端项目、客户端项目导入nuget包Orleans.Streams.Kafka(8.0.2)Kafka安装配置见(

2024-12-06 22:43:16 340

原创 Win10安装kafka并用C#调用

zk.bat内容:call bin/windows/zookeeper-server-start.bat config/zookeeper.properties。kfk.cmd内容:call bin/windows/kafka-server-start.bat config/server.properties。kafka_2.13-3.9.0\config\server.properties内修改:log.dirs=D:/Kafka/kafka-logs。双击启动kafka-manager。

2024-12-05 22:17:41 637

原创 Orleans使用ProtoBuf

在服务端配置代码中注释掉NewtonJson引擎注册,改为ProtoBuf注册;即可使用ProtoBuf作为序列化反序列化引擎。本地测试传递大数组,NewtonJson方式反而更快。

2024-11-28 21:41:25 202

原创 Orleans Stream测试

});#region 流的支持#endregion定义一个空Grain接口,和一个实现类,使用ImplicitStreamSubscription注解对流的支持;激活时创建流对象并订阅处理函数。

2024-11-14 21:05:44 248

原创 Orleans集群及Placement设置

服务端界面使用相同的clusterid和serviceid,相同ip地址,不同网关端口号和服务端口号,启动两个silo服务,并使用MySql数据库做Silo间信息同步,实现集群。比如特定业务场景,服务器上部署了硬件外设,希望每个silo服务器都启动一个grain实例,可使用Placement机制进行制约;上面代码做了简单约定,grain user1在端口11111的silo上创建,user2在端口11112的silo上创建。另外Stream会根据StreamID创建额外的Grain,实际应用需注意。

2024-11-10 21:10:23 458

原创 Orleans8.2入门测试

其中Microsoft.Orleans.Streaming,为测试流功能额外添加。

2024-11-02 18:13:52 257

原创 C# Retry库

比如网络访问或硬件参数设置需要重试,可引用gunet上的Polly库。同步方式(每次重试有不同的时间间隔)异步方式(每次重试有不同的时间间隔)

2024-10-27 15:18:26 322

原创 C# async-await循环依赖梳理

3、Task.Run内的委托函数声明为async可以在内部使用await(结合第2条,委托可以接受async函数,也可接受无async的函数)C#的async声明的函数内可以使用await,await的函数又需要async声明的函数,感觉两者互为对方的前提条件,是个死循环。2、winform或wpf控件事件加上async。1、main函数声明前面加上async。

2024-10-26 22:11:21 422

原创 CSharpScript范例

Console.WriteLine("时间: " + date1.ToString("yyyy-MM-dd HH:mm:ss:fff"));Console.WriteLine("时间: " + date1.ToString("yyyy-MM-dd HH:mm:ss:fff"));Console.WriteLine("时间: " + date1.ToString("yyyy-MM-dd HH:mm:ss:fff"));

2024-10-14 22:44:25 447

原创 csharp-repl安装配置

csharp-repl

2024-10-10 22:47:25 482

原创 跨服务器执行PowerShell脚本

Set-NetConnectionProfile -Name "未识别的网络" -NetworkCategory Private。如有多个服务器需要维护,可减少远程桌面操作次数。配置完毕,在本机编写脚本在远程执行。将远程机ip加入信任列表。本机和远程机都要执行。本机和远程机都要执行。

2024-09-13 23:16:19 559

原创 C# Span<T>、Memory<T>、stackalloc测试

【代码】C# Span<T>、Memory<T>、stackalloc测试。

2024-07-01 14:02:44 228

原创 C# Benchmark

注:关注StdDev(标准偏差)即可,越小越好。Mean为平均值,ERROR为标准误差;Ratio为异众比率;右键项目--属性, 勾选优化编译。

2024-06-30 12:02:40 499

原创 C# ObjectPool测试

ObjectPool测试结论:DefaultObjectPool的第二个参数设置合理的缓存大小,应用过程中可以确保无GC,内存稳定;如不启用缓存机制,大量new A对象,频繁GC,内存量跳跃。

2024-06-25 16:39:25 422

原创 openobserve-filebeat配置

上图第一、第三个红框是从openobserver采集-自定义-filebeat中拷贝过来的内容;第二个红框为日志文件所在目录,红框上方的encoding指定日志文件编码方式,否则openserver采集到的日志可能乱码;filebeat启动:打开powershell,输入./filebeat.exe -e -c filebeat.yml。如要启动多个采集实例,需拷贝filebeat目录,修改配置后在启动,否则提示目录被锁定。openobserver内无需配置,推送后会自动创建对应的组织和数据流。

2024-04-21 20:54:30 1000

原创 Rust引用借用 vs 原始指针

原始指针和unsafe块配合,可以避过引用借用保护,但也失去了rust的优势。rust严谨也足够灵活...,除非必要原始指针慎用,用多了又变成c了...

2024-03-28 22:31:41 584

原创 rust引用本地crate

常规方式在Cargo.xml中声明引用的crate,build时去crate.io下载或检查版本,但可能因网络因素导致build失败。首次正常引用三方crate,build时自动下载的crate源码,可将其拷贝到固定目录中做本地引用避免上述问题;注意,这里crate的path是以本项目Cargo.toml文件为基准的相对路径。重新build库,不再去crate.io下载或核对,断网也可以build成功。有时引用一个crate,会间接导入其他crate,需要逐个拷贝。

2024-03-17 21:37:17 1204

原创 log4rs测试

【代码】log4rs测试。

2024-03-15 23:19:21 470

原创 rust引用-借用机制扩展

rust自动的引用-借用机制还是有限制的,比如我们要在多次函数调用中修改参数、跨线程传递参数并发修改的场景,单纯使用引用-借用机制就不灵了。这时需要借助rust提供的Rc、Arc、Cell、RefCell对机制来扩展默认的引用借用机制。

2024-03-09 10:08:42 589

原创 rust连接postgresql数据库

注意:用户名不要使用root。

2024-02-25 22:43:35 1340

原创 rust代码组织

子目录(Crate)中的功能代码按正常方式开发好,在子目录下添加mod.rs文件,用于对外开放子目录下的功能(代码文件名(不带后缀),即模块)。注意:Rust对子目录(Crate)中的内容引用方式,需要按上面代码中注释方式进行,即:目录名称::代码文件名称(无后缀)::struct名称 as 别名。开发过程中需要按功能将代码进行拆分,放不同目录(Crate)中,如下图,将UI子页签分别定义在不同子目录下,在text_editor.rs中引用。注意:目录下有cargo.toml文件的是Package;

2024-02-13 13:58:23 571

原创 serde序列化反序列化

【代码】serde序列化反序列化。

2024-02-13 13:14:06 489

原创 tokio tcp通信

客户端、服务端都使用TcpStream的into_split方法获取网络通信读和写实例,进而获取buffer读写对象,通过channel实现线程执行同步。子线程使用tokio::spawn函数启动。

2024-02-11 22:06:27 872

原创 rust递归遍历磁盘目录及文件

【代码】rust递归遍历磁盘目录及文件。

2024-02-10 21:04:54 1717

原创 Rust使用dom操作xml

rust xml操作

2024-02-10 00:38:54 996

原创 DevExpress-ChartControl

Crosshair - 光标位置显示当前值的定义 可在Serial、ChartControl上定义。LabelsVisible - Serial上指定Point位置是否显示值的标签。Legend - Chart图各Serial的标识说明。Label - 坐标轴格式定义。

2023-08-07 13:47:58 275

转载 Win10性能计数器缺失恢复

性能计数器

2022-07-29 11:51:06 670

原创 C#调用Rust dll测试

C#调用Rust dll,难点在于字符串传递,其他类型比较自然。可以给函数传递json字符串,在传出json字符串,两端通过json序列化、反序列化,可以方便处理参数数据。也可以传递不带字符串的结构体(结构体内含字符串的情况没有验证)没什么难点,直接上码:Rust:use std::thread;use libc::{c_char, uint32_t};use std::ffi::{CStr, CString};use std::str;extern crate serde;exte

2022-01-28 22:36:34 2532 1

原创 rust环境设置

vscode断点调试rusthttps://learnku.com/rust/t/36706

2021-07-02 15:41:07 399

原创 win10安装linux子系统

1、控制面板--更新和安全--勾选开发人员选项2、控制面板--应用--程序和功能(滚动到最下端可见)--启用或关闭Windows功能--适用于Linux的Windows子系统3、重启4、打开cmd命令行,输入bash,提示安装linux分发版,复制提示的网址,粘贴到IE浏览器地址栏,回车5、打开windows商店,选择ubuntu,下载、安装6、安装完毕,关掉一直悬浮在上面的等待界面--启动,输入用户名和密码,安装完毕7、安装linux服务8、设置开机自动启动:在目录<C:

2021-03-19 16:21:01 469

原创 带序列超时提示的Observale

Observable.Timeout扩展提供了序列超时的实现,但不够灵活,超时后就异常导致订阅失效。自定义的Observable更加灵活。IDisposable customerTimeoutSubscriber; private void button10_Click(object sender, EventArgs e) { var cnt = 0; var observable = Observable.Creat...

2021-02-05 14:55:49 469

原创 rxnet samples

http://rxwiki.wikidot.com/101samples

2021-01-18 21:04:45 398

原创 emqttd下载

进入https://www.emqx.cn/mqtt-->文档-->EMQ X Broker-->开始使用-->安装-->找到对应系统的安装路径-->下载对应win10的zip,解压后,进入bin目录,在命令行中执行 ./emqttd start-->在浏览器中键入http://localhost:18083,用户名admin,密码public,进入Dashboard...

2021-01-16 20:13:56 1203

原创 设计模式简化记忆

1、设计7大法则类与接口要单一,(单一原则)依赖接口要最少。(接口隔离)设计面向是接口,(依赖反转)聚合组合少继承。(里氏替换,过多的继承重写,导致里氏替换法则被破坏)扩展不改封装类,(开闭法则,新增功能不能去修改已有实现)核心目标降耦合。(开闭法则是7大法则的核心)预测变化早分离,(设计过程中预测到可能发生的变化,早做规划,将稳定功能和易变功能区别对待)改善系统扩展性。2、uml类图参数返回叫依赖,(做类的成员函数参数和返回值的其他类,构成了依赖关系)成员.

2020-11-06 12:27:11 404

原创 goland服务热重启

开发web api或web项目,修改源码后,无需手动重启即可查看效果,使用air即可实现。安装air:go get -v -u github.com/cosmtrek/air(或下载所有源码后,go build,得到air.exe,拷贝到$gopath/bin目录)在项目目录下,创建.air.config文件,修改[build]中的cmd配置,设置为goland编译程序的命令行命令:cmd = "go build -o ./tmp/beego-demo.exe ./main.go"最终配置

2020-09-28 15:55:15 1431

Kafka3.9.0及jdk、kafka-manager

内容实测可用,上传赚点下载分数。

2024-12-05

Delphi使用GDI+绘图测试程序

在Delphi中使用GDI+,范例中包含GDI+各种效果的测试。

2012-09-06

Qt不规则窗体程序,含调用天气预报和翻译WebService

使用Qt实现的不规则窗体,实现了按任意png图形确定窗体形状.以及调用WebService实现天气预报和翻译功能.

2012-06-26

FIBPlus主细表操作

FIBPlus主细表操作,适用于FireBird InterBase FIBPlus入门者.

2012-01-11

FIBPlus事务

翻译的FIBPlus事务入门文档,适用于FireBird InterBase入门者.

2012-01-11

FIBPlus事务入门

翻译的FIBPlus入门教程,适用于FireBird,InterBase入门者.

2012-01-11

DataSnap2010白皮书翻译

DataSnap2010白皮书,入门经典。为了自己看着方便抽空翻译出来了。共享给大家。请大家批判着看,翻译错了别骂我。多谢。这东西可以取代RO了。里面有几个地方文字翻译错了,打错字了。对不住大家。本想从新上传,可这里不能修改资源。大家将就着也能看。

2010-03-31

ER/Studio中文教程

易博龙ER/Studio简介 ER/Studio是一个平台无关的逻辑数据结构分析和设计的可视化工具,并可用于特定平台的物理数据库的设计和构造. 其强大,多层次的设计环境适用于数据库管理员,开发者和数据架构师每天来维护企业内的大量复杂数据库应用,强化重用元数据,生成元数据报表. ER/Studio不断改进的界面和直观简便的特性使发行版本高效易用,这些都是从进二十多年来开发数据建模和CASE工具发展而来.企业版中使用户可以创建,理解并管理数据库设计关键任务的生命周期和业务元数据. 产品提供了超强的逻辑设计能力,并可依据相应的逻辑设计产生大量的物理设计,双向模式的信息比对同步灵活而且个性化,提供二次开发的VB API接口,强大的DLL反转引擎和生成器,元数据导入导出能力,复杂的HTML和RTF格式文档报表能力.

2009-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除