在应用程序设计里面,不单是dotnet应用程序,绝大部分都会遵循让应用在出现未处理异常状态时终结的原则。在dotnet应用里面,如果一个线程顶层出现未捕获异常,则应用进程将会被认为出现异常状态而退出。通常来说就是未捕获异常导致进程闪退 在dotnet里面,有一个隐藏的陷阱,那就是asyncvoid将会在没有线程同步上下文的情况下,被当成线程顶层。如果在asyncvoid里面发生任何未捕获的异常,严重的话将会导致进程闪退 如以下代码,在当前执行线程没有线程同步上下文的情况下,抛出的异常将会让进程闪退 asyncvoidFoo() { ... thrownewException("林德熙是逗比"...

  gKJ2xtp6I8Y7   2023年11月02日   50   0   0 .NET

本文将告诉大家如何通过Vortice使用D2D的特效 本文属于DirectX系列博客,更多DirectX和D2D以及Vortice库的博客,请参阅我的博客导航 上一篇:DirectX使用Vortice从零开始控制台创建Direct2D1窗口修改颜色 在上一篇博客里面,咱创建了一个Win32空窗口,接着给他挂上了DirectX交换链。使用以下代码从交换链里面拿到了DXGI平面,拿到的的DXGI平面即可被绘制2D内容在上面,从而将内容绘制输出到窗口上 DXGI.IDXGISwapChain1swapChain=...//忽略交换链之前的代码 D3D11.ID3D11Texture2DbackBu...

  gKJ2xtp6I8Y7   2023年11月02日   59   0   0 .NET

在UWP的InkCanvas里自带了预测书写轨迹的功能,开启此功能可以进行书写预测,从而减少书写延迟。本文将告诉大家如何在UWP的InkCanvas里开启笔迹书写预测功能 在UWP的InkCanvas里开启笔迹书写预测功能只需要设置InkModelerAttributes的PredictionTime属性即可,这个属性是用来设置预测的时间量。默认值为15毫秒,有效范围为0到20毫秒,也就是最多能预测20毫秒之后的轨迹点。印象中在10240的文档里面,是有一个使用Inertia惯性预测算法的笔迹书写预测的,但是我现在还没找到文档 设置InkModelerAttributes的Prediction...

  gKJ2xtp6I8Y7   2023年11月02日   75   0   0 .NET

本文将告诉大家如何在SemanticKernel里面调用原生本机技能,所谓原生本机技能就是使用C代码编写的原生本地逻辑技能,这里的技能可讲的可不是游戏角色里面的技能哈,指的是实现某个功能的技能,这是构成AI强大能力的基础 本文属于SemanticKernel入门系列博客,更多博客内容请参阅我的博客导航 众所周知GPT是一个大语言模型,能够参与的输入和输出是文本内容。而想要让GPT完成各项功能,则需要对接现有的编程世界。为了能够更好的复用这几十年的编程世界积累的知识和搭建的基础设施,微软推出SemanticKernel框架,通过SemanticKernel框架可以让传统的编程语言和GPT等AI更...

  gKJ2xtp6I8Y7   2023年11月02日   80   0   0 .NET

本文将告诉大家如何在SemanticKernel框架内定义自定义的变量和如何开发自定义的技能 本文属于SemanticKernel入门系列博客,更多博客内容请参阅我的博客导航 自定义变量是一个非常有用的技能,自定义变量可以让炼丹师和程序员进行并行工作。由炼丹师对AI模型进行训练,从而找到对某项问题比较好的解决方案,炼丹师此时不需要关注具体所解决的问题,可以大量使用占位符代替用户的实际输入。而程序员则可以用到炼丹师的成果进而替换占位符为具体的用户输入,从而实现功能。下面举一个具体的例子 比如说对GPT进行prompt炼丹,最后炼出一个分类器,这个分类器可以根据用户的输入内容进行分类。但是在炼丹的...

  gKJ2xtp6I8Y7   2023年11月02日   52   0   0 .NET

本文记录一个WPF已知问题,此问题已经被我修复。传入错误的数据给到WriteableBitmap对象,比如调用WritePixels时传入错误的stride数值,将可能导致渲染线程进入无限自旋锁 问题描述 应用程序停止渲染,或者是界面未响应。表现是在渲染线程卡住,从任务管理器看可以看到有一个CPU核在跑,但没跑满。进行本机代码调试可以看到卡在如下调用堆栈 wpfgfx_cor3.dll!CWGXBitmapLockState::LockRead()line1086 C wpfgfx_cor3.dll!CWGXBitmap::HrLock(consttagRECT&rcLock={....

  gKJ2xtp6I8Y7   2023年11月02日   55   0   0 .NET

本文将告诉大家在dotnet里面使用免费完全开源的基于增量源代码生成技术的Telescope库,进行收集导出项目程序集里面指定类型。可以实现性能极高的指定类型收集,方便多模块对接入自己的业务框架 此Telescope库是基于最友好的MIT协议开源的,免费开源可商用:https://github.com/dotnet-campus/SourceFusion 在日常开发过程中,也许会有这样的需求:将项目程序集里面的某种特征的类型们收集起来,用于实现自己的业务需求。比如说自己写了某些工作器,这些工作器类型都是继承IWorker接口的,此时业务上期望有某个逻辑可以将其收集导出,方便对接到自己业务上的框...

  gKJ2xtp6I8Y7   2023年11月02日   65   0   0 .NET

本文将和大家推荐一个我所在团队开源的本机多进程通讯IPC库,此IPC支持使用JSON格式进行直接路由通讯,具有使用方便,稳定性高,性能好的优点 这是我所在的团队在GitHub上使用最友好的MIT协议完全开源的项目:https://github.com/dotnet-campus/dotnetCampus.Ipc 这个开源项目开源的是一个IPC库,而本文将要介绍的是这个IPC库其中的一个功能:使用Json格式进行直接路由通讯 接下来我将一步步告诉大家如何使用这个功能实现本机多进程通讯 按照dotnet的惯例,先安装NuGet库。可以通过右击项目进入NuGet管理器,搜dotnetCampus.I...

  gKJ2xtp6I8Y7   2023年11月02日   38   0   0 .NET

本文将和大家介绍专为WPF触摸模块提供的ITabletManager的GetTabletCount方法在Windows11系统的底层实现 本文属于WPF触摸相关系列博客,偏系统底层介绍,更多触摸博客请看WPF触摸相关 大家都知道在Windows7系统,有专门的笔和触摸服务提供触摸消息的支持。而WPF是从Vista年代就开始的框架,自然需要支持到XP系统。在XP系统里面,还没有完善的WM_Touch消息,同时又需要兼顾性能,最好走的是RealTimeStylus这一套。在Windows下有一套专门给WPF触摸模块使用COM接口,这一套接口提供了和RealTimeStylus几乎一样的实现功能,详...

  gKJ2xtp6I8Y7   2023年11月01日   42   0   0 .NET

本文告诉大家在UWP或WinUI3里面如何简单制作一个由Path几何路径图形绘制的图标按钮 先在资源里面定义按钮的样式,重写Template属性,通过在Template里面放入Path绑定Data到内容从而实现让Path显示集合路径图形,代码如下 <Stylex:Key="Style.TitlebarButton"TargetType="Button"> <SetterProperty="Background"Value="Transparent"/> <SetterProperty="Foreground"Value="808080"/> <Sett...

  gKJ2xtp6I8Y7   2023年11月01日   54   0   0 .NET

在运行UNO的SamplesApp.Skia.Gtk例子程序时,如果没有拷贝字体文件夹,导致字体丢失,将会在运行的时候抛出NullReferenceException空异常 抛出的异常堆栈大概如下 > Uno.UI.dll!Windows.UI.Xaml.Documents.Inline.GetFont(stringname="ms-appx:///Assets/Fonts/uno-fluentui-assets.ttfSymbols",Windows.UI.Text.FontWeightweight={Windows.UI.Text.FontWeight},Windows.UI.Tex...

  gKJ2xtp6I8Y7   2023年11月01日   32   0   0 .NET

本文告诉大家如何修复使用GitLab的Runner做CI时提示"pwsh":executablefilenotfoundin%PATH%错误 有两个方法,第一个方法就是安装pwsh命令,安装方法是在PowerShell里输入以下代码安装 wingetinstallMicrosoft.PowerShell 如果嫌弃winget输入太慢,可以从他的输出里面找到PowerShell的下载地址,换个快速的下载器去下载即可 输入以上命令之后,相信你看界面就会了 第二个方法就是将pwsh修改为powershell代码,编辑gitlab-runner.exe所在文件夹下的config.toml文件,将里面...

  gKJ2xtp6I8Y7   2023年11月01日   38   0   0 代码与软件发布
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~