- 博客(229)
- 资源 (3)
- 收藏
- 关注
原创 WPF+ Prism+ NLog
前言我在WPF + Prism中使用NLog,但是我想在每个模块(类)中使用Microsoft.Extensions.Logging.ILogger,该如何实现。背景我开始制作一个示例程序,因为我希望能够使用WPF + Prism制作一个应用程序。因为Prism官方已经将Prism.Logging从Prism框架中删除,目前选择的日志框架是NLog,通过使用Microsoft.Extensions.Logging.ILogger可以实现。虽然这可能还不是最好的用法,但是在大多数情况下,只要您知
2021-02-05 23:24:54 3612 1
翻译 ReactiveUI 入门
入门ReactiveUI使您能够使用MVVM模式构建反应式,可测试和可组合的UI代码。请参阅我们的ReactiveUI文档手册。我们还有一个完整的跨平台演示应用程序。入门要开始使用,请访问我们的“安装”页面。在引人注目的例子走过创造一个更完整的应用程序,展示ReactiveUI和无功扩展的力量。为什么选择MVVM?Model-View-ViewModel(MVVM)模...
2020-04-21 10:33:41 10953 3
翻译 The Long Running Task
我们经常遇到这样的场景,我们需要长时间运行某个函数,该函数将对某些触发器做出反应,然后运行一些代码逻辑。这是我们需要应用长时间运行的任务的地方。此任务保持活动状态并响应特定触发器。在今天的文章中,我们将研究如何创建这样一个长时间运行的任务。我们将向其传递需要运行的函数,当触发器被激活时,将执行该函数的单次运行。
2023-08-03 16:52:51 242
翻译 如何使用 SocketAsyncEventArgs 类
APM 自第一个版本起就在 .NET Framework 中实现,并使用 C# 3.0 中的 lambda 表达式等新技术进行改进。特别是对于套接字编程,APM 的新模型提供了更简单的编码,更不用说性能优势了。然后,我发现了基于事件的异步操作的新模型(请参阅MSDN 杂志 2007 年 9 月号中的“尽管MSDN说该类是专门为网络服务器应用程序设计的,但在客户端代码中使用该APM并没有限制。,本文中的代码是使用 Microsoft Visual Studio .NET 2008 编写的。
2023-07-16 23:26:09 654
翻译 Socket性能优化技巧
优化套接字性能对于构建响应迅速且可扩展的网络应用程序至关重要。为了避免在网络操作期间阻塞主线程,可以使用该类提供的异步方法。在 .NET Core 和 .NET 5+ 中,您还可以使用。Socket性能优化技巧。基于 的异步方法,例如。
2023-07-16 23:20:59 475
翻译 C# 定时器:你需要知道的一切
System.Timers.Timer 和 System.Threading.Timer 都是为在服务器类型的进程中使用而设计的,但是 System.Timers.Timer 包含一个同步对象以允许它与用户界面交互,这对于需要跟踪用户输入或更新。您不能将 System.Threading.Timer 用作组件容器中的组件,它实现了 System.ComponentModel.IContainer,因为它不是从 System.ComponentModel.Component 派生的。
2023-05-30 15:34:47 6153
转载 闪退分析:使用DebugDiag自动抓取DUMP
在异常分析:所有客户端闪退问题里,我介绍了一种抓取IIS进程DUMP的方法,此方法配置简单快速,但有时候可能发生了闪退没有抓取到DUMP,本文介绍另外一种抓取DUMP的工具。DebugDiag可以按一定的规则(Rules)监控并生成DUMP,可以对闪退、高CPU占用等情况自动获取DUMP并用于分析。
2023-04-25 15:34:39 609
翻译 一个简单的 Async/Await 示例:一个计时器
因此,和以前一样,我使用 Stopwatch 来计算每次迭代所花费的时间,并调整下一次迭代的计时器等待间隔。这个局部函数是异步的。在这个后来的版本中,就好像我们在两个不同的事物之间交流状态。在 async/await 版本中,我们“等待”剩余时间并继续循环,而在定时器类版本中,我们设置了 Interval 属性。例如,在 async/await 版本中,我使用 while 循环来对迭代进行建模。总而言之,async/await 版本允许我们对计时器逻辑进行建模,而基于事件的版本则需要我们进行协调。
2023-03-13 23:03:01 470
转载 WPF:警惕TextBox会占用过多内存
适当设置WPF的TextBox.UndoLimit(尤其是.NET 3.5/4.0环境下,默认值-1太可怕了)。当然这仅仅应用在频繁设置TextBox值的情况下,如果没有此类情况,无需担心。另外也要注意如果要进行频繁字符串拼接操作,请使用TextBoxBase.AppendText或者StringBuilder。
2023-03-09 10:38:10 683
转载 WinDbg快速分析异常情况Dump文件
生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDbg 如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump 文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。本文主要介绍了调试工具 WinDbg 和抓包工具 ProcDump 的使用。
2023-03-03 12:03:21 2625
翻译 WPF Datagrid MVVM - Collection Views - Filtering Data-CollectionViewSource.GetDefaultView
WPF Datagrid MVVM
2023-02-14 15:35:04 701
翻译 如果 ItemTemplate 中的 TextBox 获得焦点,则选中该 ListBoxItem
如果 ItemTemplate 中的 TextBox 获得焦点,则选中该 ListBoxItem
2023-01-10 18:08:20 367
转载 WPF,防止snoop窥探你的程序
此代码用于将snoop窥探到你程序的窗体关闭掉,对方如果把snoop的名称或者窗体名称修改则无效真正阻止snoop之类的程序进行窥探应该保护你程序进程的内存,而不是用投机取巧的办法snoop窥探原理,在你的程序进程写入一个来自snoop.exe的WPF窗体
2022-11-08 17:43:05 835 1
转载 wpf绑定全局静态变量并且实现变更通知(mvvm)
在实际的开发中,有一些集合或者属性可能是全局的,比如当你做一个oa的时候,可能需要展示所有的人员,这时这个所有的人员列表显然可以作为全局参数,比如这里有一个全局的静态属性UserList。而你在使用mvvm做wpf开发的时候,一般每个view都已经指定好了viewmodel。而viewmodel显然是不包含UserList。这时如果你想在绑定了viewmodel里面绑定UserList给某个ListBox该怎么办呢。首先你可以在你的viewmodel里面定义一个UserList指向全局静态变量的引用
2022-11-03 10:41:37 1450
转载 WPF中实现基于物理像素绘图的方法是什么
今天就跟大家聊聊有关“WPF中实现基于物理像素绘图的方法是什么”的内容,可能很多人都不太了解,为了让大家更加了解“WPF中实现基于物理像素绘图的方法是什么”,小编给大家总结了以下内容,希望这篇文章能帮助大家,下面我们一起来了解看看吧。WPF中有一个DrawingContext类,该类提供了很多画法方法,例如DrawLine,DrawText,DrawRectangle等。开发者使用它们可以方便地进行图形绘制。不过,在使用DrawingContext过程中,我发现使用DawLine方法画出的线条在某些部分有
2022-11-03 09:49:11 553 1
翻译 GDI 和 WPF 的区别
Windows Presentation Foundation(WPF)API 从根本上不同于图形设备接口 (GDI)和GDI+API,要求以不同的方式处理编程的许多方面。本主题简要概述了两个主要领域的主要差异,包括作为渲染器和作为框架的差异。
2022-09-17 19:37:31 1011
翻译 在 C# 中约束并发线程
并行性可以极大地提高应用程序的整体性能,但如果误用,可能会导致比它解决的问题更多的问题。这些模式允许您使用有限数量的线程来处理一批作业。您应该选择哪一种取决于您生成任务的方式——您是否预先了解它们,或者它们是在您已经在处理早期任务时动态创建的?您是在单个线程上按顺序生成这些任务,还是多个线程能够即时生成额外的工作项?
2022-09-15 14:28:36 831
翻译 并行处理您的列表以使其在 .NET 中更快
数据并行是指对源集合或数组中的元素同时(即并行)执行相同操作的场景。在数据并行操作中,源集合是分区的,以便多个线程可以同时对不同的段进行操作。
2022-09-15 14:07:58 392
转载 C# / WPF 基础知识
http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/Catalog0470__Windows-Presentation-Foundation.htm
2022-09-13 19:56:36 857
翻译 什么是SynchronizationContext?
在这篇文章中,我解释了SynchronizationContext它是什么以及它试图解决什么问题。我还更深入地探讨了为什么我们需要这个结构以及 .Net 如何在后台处理这些问题。
2022-09-05 19:44:27 1745
转载 .NET 调整图片尺寸(Resize)各种方法
调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。
2022-08-25 10:56:22 707
原创 WPF CompositionTarget.Rendering和 DispatcherTimer
CompositionTarget.Rendering和 DispatcherTimer 运用
2022-08-18 17:15:27 809
转载 WPF防止事件连续多次响应
在处理一些交互事件的时候,很容易出现单击或双击,不小心触发了多次的问题。目前没有找到很好的处理办法。于是想着自己封装一个类。
2022-08-03 16:52:03 1970
翻译 如何在与 WPF 文本框的触摸交互中显示触摸键盘
针对新版框架的 WPF 应用程序支持触摸键盘的自动调用和解除,与 Windows 10 上的 UWP 应用程序的行为相匹配。这意味着您无需对新应用程序进行任何额外的更改即可支持触摸键盘.
2022-07-26 16:44:45 1722
转载 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分)
深耕 WPF 开发的各位程序员大大们一定避不开使用 Dispatcher。跨线程访问 UI 当然免不了用到它,将某个任务延迟到当前任务之后执行也会用到它。Dispatcher.Invoke、Dispatcher.BeginInvoke 是过去大家经常使用的方法,而 .NET Framework 4.5 中微软为我们带来了 Dispatcher.InvokeAsync 方法,它和前面两个有何不同?...
2022-07-20 14:54:07 2223
翻译 WPF Dispatcher.BeginInvoke 和 Dispatcher.InvokeAsync 之间的区别
在.NET 4.5中,向 Dispatcher 类添加了InvokeAsync 方法。该方法与传统的BeginInvoke 方法类似,但异常处理有很大不同。因此,这不仅仅是使用新的 InvokeAsync 方法而不是旧的 BeginInvoke 方法的问题,您必须根据处理异常的方式来不同地使用它...
2022-07-20 14:29:35 896
翻译 Task.Run 和 Task.Factory.StartNew 之间的区别
在本文中,我们了解了Task.Run和Task.Factory.StartNew之间的区别。我们已经讨论了一些高级用例,哪些StartNew是可行的选择,否则Task.Run通常是推荐的方法。
2022-07-19 10:05:32 3372
WPF Performance Profiling Tools
2022-08-19
ffmediaelement环境搭建是用到的dll文件
2022-08-11
Defender Control 是一款小型便携式免费软件,可让您在 Windows 10 中完全禁用 Microsoft De
2022-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人