自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 多线程与UI更新:如何在WPF中实现线程间通信与界面刷新

多线程编程在WPF应用程序中扮演着重要的角色,它不仅可以提高应用程序的性能,还能增强用户体验。通过上述方法,我们可以确保在子线程中完成计算后,安全且高效地更新UI界面。

2024-10-28 23:58:16 1173

原创 基于MVVM设计模式的Prism框架

Prism 是一个用于构建富客户端桌面(WPF)和移动(Xamarin Forms)应用程序的框架,由微软提供。它基于微软的模式与实践(Microsoft Patterns & Practices)团队开发,并且是开源的。Prism 旨在简化应用程序开发过程,特别是那些遵循 MVVM(Model-View-ViewModel)模式的应用程序。Prism框架的主要特点有模块化MVVM 支持依赖注入导航事件聚合器命令行为服务定位器视图模型定位器区域和布局配置和初始化等。

2024-07-22 18:35:55 2066 2

原创 事件与委托

事件(Event)和委托(Delegate)都是用于实现对象间通信的机制。事件和委托是.NET框架中用于实现类型安全、多播和动态方法引用的机制,支持异步编程和回调,促进了解耦和组件间的松散耦合,广泛应用于UI编程、数据绑定和异步操作,并在C#等语言中通过语法糖提供简洁易用的编码体验。其中事件使用委托来定义可以被调用的方法的签名,它们只允许具有正确签名的方法与之关联,这也是他们类型安全的体现。我在企业开发中发现公司更多用动作委托(Action)来替代需要使用委托的地方,所以本文还将简单描述一下动作委托。

2024-07-15 00:20:44 1579 3

原创 WPF角度介绍路由事件与命令

路由事件(Routing Events)和命令(Commands)在用户界面编程中都是用于处理用户操作和系统交互的机制,但它们的设计目的和工作方式有所不同。路由事件和命令都是响应用户交互的一部分,比如点击、选择或者输入操作,且他们都可以触发应用程序中的某些行为和逻辑,路由事件和命令都能在程序中被编程和自定义,以适应不同的需求。

2024-07-14 00:48:30 1082

原创 简述WPF中各类触发器

触发器(Trigger)通常指的是一种事件驱动机制,用于响应特定的事件或条件。WPF触发器是WPF中一种强大的功能,允许开发者在样式和模板中定义条件逻辑,以响应属性值的变化。WPF提供了多种触发器来实现样式和模板中的动态行为。文中主要讲一下属性触发器事件触发器样式触发器数据触发器和多触发器五种触发器的概念以及他们之间的区别。属性触发器:简单直接,适用于基于控件内部状态变化的样式调整,但缺乏对外部数据的响应能力。事件触发器:响应用户交互,适合启动动画或命令,但不具备条件持续检查的能力。样式触发器。

2024-07-12 17:58:50 2065

原创 WPF基础知识

WPF(Windows Presentation Foundation)是微软开发的用于构建现代Windows应用程序的框架。它是.NET Framework中的一个重要组件,通过提供丰富的界面设计、图形渲染、数据绑定、布局、动画和多媒体等功能,使开发人员能够创建具有高度交互性和可视化效果的应用程序。1.抽象类是一种特殊的类,它可以包含抽象方法(没有实现的方法)和具体方法(有实现的方法)。2.抽象类不能被实例化,但它可以被继承,派生类必须实现抽象类中的所有抽象方法。

2024-04-17 15:04:43 1013 2

原创 浅谈单例模式

Lazy<T>创建一个延迟初始化的单例实例,lazyInstance是一个静态只读字段,它包含了对Lazy<T>实例的引用。:Lazy<T> 是 .NET 标准库的一部分,这意味着使用 Lazy<T> 实现的单例模式可以在不同的 .NET 运行时环境中工作,包括 .NET Framework、.NET Core 和 Xamarin 等。:先判断instance是否被创建,若未被创建则加锁,由于多线程的原因,加锁过后还需再判断instance是否被创建,若此时还未被创建则创建实例,操作完成后释放锁。

2024-03-25 14:48:53 300 2

原创 InfluxDB存储引擎——TSM引擎

存储在一起形成的数据集,通常来说,时间序列中时间值的间隔都是比较固定的,比如每隔一秒钟采集一次的时间值间隔都是1s,这种具有固定间隔值的时间序列压缩非常高效,TSM采用了Facebook开源的Geringei系统中对时序时间的压缩算法:delta-delta编码。存储在一起形成的数据集,同一种Key对应的指标值数据类型都是相同的,由Type字段表征,相同类型的数据值可以很好的压缩,而且时序数据的特点决定了这些相邻时间序列的数据值基本都相差不大,因此也可以非常高效的压缩。临时插入内存的数据。

2022-09-21 11:36:35 1914

原创 LSM(Log-Structured Merge Tree)

LSM Tree全称日志结构合并树(Log-Structured Merge Tree)。BigTable的理论模型,在面临海量数据存入是能展现出比B+ Tree更快的存储速度,其存储架构设计在机械盘时代大放异彩。

2022-09-08 16:46:52 4826 1

原创 浅谈时序数据库(TSDB)

时序数据库(TSDB):全称时间序列数据库,主要分为时间戳(timestamp)、标签(tag)、存档(filed)三部分,按照时间顺序记录数据。物联网时代的兴星,万物互联的的思想,利用物联网设备的传感器传输设备的实时数据到时序数据库,对设备的异常、IO等数据进行记录。......

2022-08-11 16:55:01 10280 4

原创 ICPC网络赛第二场 2021.9.25

第二场题目更加偏向数学,可惜学算法的时候把高数丢了,第二场罚坐五小时。比完赛后面去看了三道被称为签到题的题解。下面是这三道题的思路和代码。Problem G. LimitGiven 2n integers,a1,a2,...,an,b1,b2,...,bn,and an integer t. You need to calculate:这道题就是计算该公式,搜了下题解基本都是用的泰勒展开,展开公式如下:代码如下:#include<iostream>us

2021-10-07 16:12:07 630

原创 ICPC网络赛第一场 2021.9.19

第一次参加ICPC,了解了ICPC的题型和比赛流程及比赛规则。这次和团队小伙伴一共做出两道题,赛后又去了解了一道题,下面是三道题的题解及代码。Problem F. Land Overseer这道题的大概意思就是从O(0,0)到A(a,b)再到B(2a,0)的最短距离,且到每个点的距离最多不超过R就表示到达该点。解题思路:先计算O(0,0)点到A'(a,b - R)的距离,但是此处有个坑,如果R > b,则只需计算O(0,0)到A''(a,0)的距离(即b)就行了,然后判断A'/A'

2021-10-07 00:33:26 559

转载 关于“std::ios::sync_with_stdio(false);”能提高代码速度

该语句简单说就是关闭了同步C++流的线程安全。 C++流无缓冲,每次I/O需要调用C流的缓冲区,故cin运行速度比scanf慢。 当关闭了默认的同步功能过后能自由的混合C++和C的输入,从而在某些情况下加快了代码的运行速度。 加了该语句过后用了cin就不能再用scanf。若在标准流上已出现 I/O 后调用此函数,则行为是实现定义的:有的实现无效果,有的实现销毁读取缓冲区。标准 C++ 流为下列者: std::cin 、 std::cout 、 std::cerr 、 std::clog 、 std:

2021-09-14 18:20:32 193

空空如也

空空如也

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

TA关注的人

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