- 博客(82)
- 资源 (9)
- 收藏
- 关注
原创 WPF 所有的控件和每个控件的主要作用和应用场景
WPF 提供了功能强大的控件集,适用于从简单的用户界面到复杂的数据展示和交互。通过使用这些控件和布局容器,可以灵活构建现代化的桌面应用程序。每个控件都有特定的应用场景,了解其用途可以帮助开发人员更好地设计和实现应用程序的用户界面。
2024-09-20 16:06:58 911
原创 WPF 异步
WPF 中的异步操作通过asyncawait和Task类实现,能够防止 UI 冻结,提升用户体验。异步任务中的 UI 更新需要通过Dispatcher切换到 UI 线程。和分别提供了任务取消和进度报告的支持。使用异步编程可以更高效地处理 I/O 密集型任务和计算密集型任务,同时保持 UI 的响应性。
2024-09-19 20:48:22 741
原创 WPF 中的线程池
WPF 中可以通过 ThreadPool或 Task来执行后台任务,保持 UI 线程的响应性。任务完成后,必须通过 Dispatcher切换回 UI 线程更新 UI 控件。Task提供了更灵活的功能,推荐使用 Task和 asyncawait来处理异步任务。使用 CancellationToken机制可以取消正在进行的异步任务,提升用户体验。这些技巧可以帮助开发者在 WPF 应用中高效处理多线程任务,确保应用性能和响应性。线程池主要是为了解决什么问题,原理是什么。
2024-09-19 20:42:47 1016
原创 WPF经典面试题全集
以上这些问题涵盖了WPF的核心概念和高级功能,包括数据绑定、依赖属性、MVVM 模式、资源管理、动画、主题切换以及拖放操作等。这些知识点对于理解和深入掌握WPF开发至关重要,同时也是面试中常见的考察点。
2024-09-19 20:31:53 1331
原创 PyTorch 和 TensorFlow
PyTorch是由 Facebook AI Research (FAIR) 开发的开源深度学习框架,以其易用性和灵活性著称。它基于动态计算图,允许用户在模型训练时动态改变网络结构,这使其在研究和开发阶段尤为受欢迎。TensorFlow是由 Google Brain 开发的开源深度学习框架。它是一个支持大规模分布式计算的框架,最初设计用于生产环境中的部署,同时也是工业界应用的主流框架。特性PyTorchTensorFlow计算图动态计算图(即时执行)
2024-09-11 20:58:49 1123
原创 Computer Vision的学习路线
计算机视觉的学习路线通常从基础的数学知识和图像处理开始,逐步深入到经典的视觉算法和深度学习模型,再扩展到复杂的应用场景和前沿研究。这个学习路径将帮助你从入门到精通,最终能够独立完成计算机视觉项目,并跟上领域的最新进展。
2024-09-11 20:56:09 932
原创 WPF 依赖属性与附加属性(面试长问)
依赖属性是一种特殊的属性,它提供了增强的功能,比如数据绑定、动画、样式、属性继承等。它通常定义在控件类中,控件类通过方法注册依赖属性,并通过GetValue和SetValue方法获取或设置依赖属性的值。附加属性是一种特殊类型的依赖属性,它允许某个类为其他类定义属性,通常用于布局控件中,以便为其子元素提供额外信息。附加属性本质上是依赖属性,但它们可以附加到其他类的实例上,这意味着附加属性的所有者并不是实际使用该属性的对象。特性依赖属性(Dependency Property)
2024-09-11 20:17:35 1293
原创 WPF 面试经典题目
在 C# 的 WPF 应用程序中,依赖属性(Dependency Property)是一个特殊的属性类型,它是 WPF 中数据绑定、样式、动画和模板机制的核心。依赖属性的主要特点包括:存储:依赖属性的值存储在一个专门的存储体系中,不是直接存储在对象的字段中。数据绑定:支持数据绑定,可以从绑定的数据源自动更新。默认值:可以为依赖属性定义默认值。样式和模板:可以通过样式和控件模板对依赖属性进行控制和修改。变更通知:依赖属性在值更改时可以触发事件,从而实现自动更新UI。定义依赖属性的步骤:定义:在类中使用 类型
2024-09-04 18:38:52 1387
原创 Assembly 跨域通信AppDomain
通过AppDomain实现跨域通信是一种强大的方式,尤其在需要隔离不同组件、插件或不受信任代码的场景下。然而,使用AppDomain也带来了额外的复杂性和性能开销。在 .NET Core 和 .NET 5+ 环境下,由于AppDomain的功能被简化,可能需要采用其他技术方案来实现类似的隔离和通信需求。Assembly在跨域通信中的应用场景主要集中在隔离、动态加载、不受信任代码执行和版本管理等方面。通过使用AppDomain。
2024-09-03 20:11:08 1226
原创 C# Assembly
Assembly在 C# 和 .NET 开发中有广泛的应用场景,涵盖了从插件系统、反射、嵌入资源管理到跨域通信等多个方面。通过灵活地使用Assembly,可以大大增强应用程序的扩展性、灵活性和动态性。使用Assembly提供了动态加载代码、反射、嵌入资源和版本控制等强大的功能,这些功能极大地增强了应用程序的灵活性和扩展性。然而,这也带来了代码复杂性、安全风险、性能影响等问题。开发者在使用Assembly时需要权衡这些优缺点,确保在合适的场景中使用它,并采取适当的措施来缓解潜在的风险。
2024-09-03 20:05:46 1227
原创 Thread中的ApartmentState
单线程公寓模型,每个线程在其生命周期内只处理一个消息队列,适用于需要对 COM 对象进行单线程访问的场景,例如 WPF 和 Windows Forms 的 UI 线程。属性用于设置线程的线程公寓状态(Apartment State),它对于线程的线程模型和与 COM 组件的交互有重要影响。:多线程公寓模型,多个线程可以同时处理 COM 对象,不需要消息队列,适用于需要高并发或需要跨线程操作的场景。在创建新的线程时,如果你的线程需要与 STA COM 组件交互,你需要设置。属性是只读的,无法在运行时更改。
2024-09-03 11:02:35 884
原创 Action 作为参数,对方法进行传参的写法
无参数的ActionAction。带一个参数的ActionAction。带多个参数的Action, 等等。异步操作:使用Func来处理异步操作的Action。通过使用Action委托,你可以将方法作为参数传递,灵活地处理各种逻辑,并使代码更加模块化和可维护。
2024-09-02 18:52:11 269
原创 计算机系统-内存与CPU
内存(Memory),通常指随机存取存储器(RAM, Random Access Memory),是计算机系统中的一种高速存储器,用于临时存储当前正在使用的数据和程序。同样,硬盘或SSD存储计算机中的所有文件和程序,但它们访问速度较慢,需要时才加载到内存中。内存(RAM)可以类比为一个办公桌或工作台,它在计算机中起到的作用类似于你在工作时用来放置和处理当前工作资料的地方。总结来说,内存相当于计算机的工作空间,它决定了你在工作时可以同时处理多少文件和信息,以及处理这些信息的效率。
2024-08-27 19:06:34 665
原创 WPF UserControl 进行界面绑定,怎么进行内存释放
当你在一个界面中多次创建相同的下面是一个示例演示如何在一个窗口中创建三个相同的实例,每个实例绑定不同的数据,并在需要时释放当前页面的内存。
2024-08-26 17:12:29 342
原创 WPF 怎么样使用缓存
缓存是提升WPF应用性能的有效手段,合理使用缓存可以显著减少内存使用、提高响应速度和减少资源的重复加载。在实际应用中,应该根据具体的业务需求选择合适的缓存策略,并考虑缓存的过期和清理机制,以确保应用的高效运行。
2024-08-22 20:36:30 537
原创 做个一套C#面试题
在以下情况下,自定义类型需要重写 Equals 函数:需要重写 Equals 的情况值相等逻辑:当你需要定义两个对象的“值相等”逻辑,而不仅仅是引用相等(即默认情况下的相等)。例如,在比较两个包含相同数据但不同引用的对象时,它们应该被认为是相等的。集合操作:当你的对象将用于集合(如哈希表、字典、哈希集)中,需要基于值进行比较和操作时。例如,想要在集合中避免重复对象,或者根据对象值进行查找。为什么需要同时重写 GetHashCode。
2024-08-09 01:35:38 953
原创 热加载和冷加载
安装自定义组件安装自定义组件通常包括将组件的程序集加载到应用程序域,并根据需要初始化和配置组件。加载程序集使用或其他加载方法加载自定义组件的程序集。初始化组件根据组件的设计,执行初始化操作,如创建对象实例、注册服务、配置组件属性等。使用组件在应用程序中使用加载的组件,调用其方法或访问其属性。卸载自定义组件卸载自定义组件涉及从应用程序中移除组件的所有引用和资源,确保不再使用和占用系统资源。释放资源执行与组件加载和使用相关的资源释放操作,确保释放对象、关闭连接等。取消注册服务。
2024-07-29 00:05:48 515
原创 WPF父窗口中的UserControl 使用DataContext 绑定对应的ViewModel
WPF 界面中子元素 DataContext 绑定对应的ViewModel
2022-09-21 16:31:29 3333 1
原创 面试题一:C#编一个判别质数的函数,如果是质数返回值为1,否则为0
查找发是一旦找到2到n-1范围内第一个能够整除n的数就会跳出循环,但是如果需要判断出质数也要所有的都除一遍都不能整除才能得出是质数的结论,如果n的值比较大也同样会面对计算量就较大的问题。如果一个程序中有多次判断质数,再这些结论的基础和上运行下一步程序,整个程序运行速度就会慢。我们可以统计出1到n范围内的整数,能够整除n的个数。可以查找2到n-1范围内所有的数去除n,如果能够整除,这表明这个数不是质数。计数法需要判断1到n范围内的所有整数是够能整除n,如果n的值比较大相应的计算量就较大。...
2022-07-20 07:58:16 365
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人