当前位置: 首页 > news >正文

做网站犯法了 程序员有责任吗升级不了wordpress

做网站犯法了 程序员有责任吗,升级不了wordpress,王野天照片,芜湖有哪些招聘网站本文内容 先决条件为什么要实现弱事件模式#xff1f;应该由谁实现弱事件模式#xff1f;如何实现弱事件模式 在应用程序中#xff0c;附加到事件源的处理程序可能不会与将处理程序附加到源的侦听器对象一同销毁。 这种情况下会导致内存泄漏。 Windows Presentation Found…本文内容 先决条件为什么要实现弱事件模式应该由谁实现弱事件模式如何实现弱事件模式 在应用程序中附加到事件源的处理程序可能不会与将处理程序附加到源的侦听器对象一同销毁。 这种情况下会导致内存泄漏。 Windows Presentation Foundation (WPF) 引入了可用于解决此问题的设计模式。 设计模式为特定事件提供专用的管理器类并在该事件的侦听器上实现接口。 此设计模式称为弱事件模式。 1、先决条件 本文假定你对路由事件有基本的了解并且已阅读 路由事件概述。 若要遵循本文中的示例如果熟悉 Extensible Application Markup Language (XAML) 并知道如何编写 Windows Presentation Foundation (WPF) 应用程序将会很有帮助。 2、为什么要实现弱事件模式 对事件的侦听可能会导致内存泄漏。 侦听事件的常用技术是使用特定于语言的语法将处理程序附加到源上的事件。 例如C# 语句 source.SomeEvent new SomeEventHandler(MyEventHandler) 或 VB 语句 AddHandler source.SomeEvent, AddressOf MyEventHandler。 然而此技术可创建从事件源到事件侦听器的强引用。 除非显式注销事件处理程序否则侦听器的对象生存期将受到源的对象生存期的影响。 在某些情况下你可能希望通过其他因素例如当前是否属于应用程序的可视化树控制侦听器的对象生存期。 每当源的对象生存期超出侦听器的有用对象生存期时侦听器的存活时间比必要时间要长。 在这种情况下未分配的内存相当于内存泄漏。 弱事件模式旨在解决内存泄漏问题。 当侦听器需要注册事件时都可以使用弱事件模式但侦听器并不明确知晓事件会在何时注销。 当源的对象生存期超过侦听器的有用对象生存期时也可以使用弱事件模式。 在这种情况下有用与否将由你来决定。 弱事件模式允许侦听器注册事件和接收事件而不会以任何方式影响侦听器的对象生存期特征。 实际上对源的隐式引用并不能确定侦听器是否有资格执行垃圾回收。 由于是弱引用因而引用是对弱事件模式和相关 API 的命名。 侦听器可以被垃圾回收或以其他方式销毁而源可以继续运行无需保留针对现已销毁的对象的不可回收的处理程序引用。 3、应该由谁实现弱事件模式 弱事件模式主要与控件作者相关。 控件作者主要负责控件行为和控件包含以及控件对其所插入的应用程序的影响。 这包括控件对象生存期行为特别是处理所述的内存泄漏问题。 某些方案本身就适合应用弱事件模式。 此类方案之一是数据绑定。 在数据绑定中源对象通常独立于作为绑定目标的侦听器对象。 WPF 数据绑定的许多方面已经在事件的实现方式上应用了弱事件模式。 4、如何实现弱事件模式 有四种方法可以实现弱事件模式每种方法都使用不同的事件管理器。 选择最适合你的方案的事件管理器。 现有弱事件管理器 当要订阅的事件具有对应的 WeakEventManager请使用现有的弱事件管理器。 有关 WPF 附带的弱事件管理器列表请参阅 WeakEventManager 类中的继承层次结构。 由于包含的弱事件管理器有限可能需要选择其他方法中的一个。 通用弱事件管理器 如果现有的 WeakEventManagerTEventSource,TEventArgs 事件不可用并且你正在寻找实现弱事件的最简单方法请使用泛型 WeakEventManager。 但是泛型 WeakEventManagerTEventSource,TEventArgs 比现有或自定义弱事件管理器更低效因为它使用反射从其名称中发现事件。 此外使用泛型 WeakEventManagerTEventSource,TEventArgs 注册事件所需的代码比使用现有或自定义 WeakEventManager 注册事件所需的代码更详细。 自定义弱事件管理器 在现有 WeakEventManager 不可用且效率至关重要时创建自定义的 WeakEventManager。 尽管比泛型 WeakEventManager 更有效但自定义 WeakEventManager 要求编写更多前期代码。 第三方弱事件管理器 当需要其他方法未提供的功能时请使用第三方弱事件管理器。 NuGet 具有一些较弱的事件管理器 。 以下部分介绍如何通过使用不同的事件管理器类型来实现弱事件模式。 对于泛型和自定义弱事件管理器示例要订阅的事件具有以下特征。 事件名称为 SomeEvent。事件由 SomeEventSource 类引发。事件处理程序的类型为 EventHandlerSomeEventArgs。事件将 SomeEventArgs 类型的参数传递给事件处理程序。 4.1 使用现有弱事件管理器类 查找现有弱事件管理器。 有关 WPF 附带的弱事件管理器列表请参阅 WeakEventManager 类的继承层次结构。 使用新的弱事件管理器而不是普通事件挂钩。 例如如果代码使用以下模式订阅事件 source.LostFocus new RoutedEventHandler(Source_LostFocus);将其更改为以下模式 LostFocusEventManager.AddHandler(source, Source_LostFocus);同样如果代码使用以下模式取消订阅事件 source.LostFocus - new RoutedEventHandler(Source_LostFocus);将其更改为以下模式 LostFocusEventManager.RemoveHandler(source, Source_LostFocus);4.2 使用泛型弱事件管理器类 使用泛型 WeakEventManagerTEventSource,TEventArgs 类而不是普通事件挂钩。 使用 WeakEventManagerTEventSource,TEventArgs 注册事件侦听器时需要将事件源和 EventArgs 类型作为类型参数提供给类。 调用 AddHandler如以下代码所示 WeakEventManagerSomeEventSource, SomeEventArgs.AddHandler(source, SomeEvent, Source_SomeEvent);4.3 创建自定义弱事件管理器类 将以下类模板复制到项目。 以下类继承自 WeakEventManager 类 class SomeEventWeakEventManager : WeakEventManager {private SomeEventWeakEventManager(){}/// summary/// Add a handler for the given sources event./// /summarypublic static void AddHandler(SomeEventSource source,EventHandlerSomeEventArgs handler){if (source null)throw new ArgumentNullException(nameof(source));if (handler null)throw new ArgumentNullException(nameof(handler));CurrentManager.ProtectedAddHandler(source, handler);}/// summary/// Remove a handler for the given sources event./// /summarypublic static void RemoveHandler(SomeEventSource source,EventHandlerSomeEventArgs handler){if (source null)throw new ArgumentNullException(nameof(source));if (handler null)throw new ArgumentNullException(nameof(handler));CurrentManager.ProtectedRemoveHandler(source, handler);}/// summary/// Get the event manager for the current thread./// /summaryprivate static SomeEventWeakEventManager CurrentManager{get{Type managerType typeof(SomeEventWeakEventManager);SomeEventWeakEventManager manager (SomeEventWeakEventManager)GetCurrentManager(managerType);// at first use, create and register a new managerif (manager null){manager new SomeEventWeakEventManager();SetCurrentManager(managerType, manager);}return manager;}}/// summary/// Return a new list to hold listeners to the event./// /summaryprotected override ListenerList NewListenerList(){return new ListenerListSomeEventArgs();}/// summary/// Listen to the given source for the event./// /summaryprotected override void StartListening(object source){SomeEventSource typedSource (SomeEventSource)source;typedSource.SomeEvent new EventHandlerSomeEventArgs(OnSomeEvent);}/// summary/// Stop listening to the given source for the event./// /summaryprotected override void StopListening(object source){SomeEventSource typedSource (SomeEventSource)source;typedSource.SomeEvent - new EventHandlerSomeEventArgs(OnSomeEvent);}/// summary/// Event handler for the SomeEvent event./// /summaryvoid OnSomeEvent(object sender, SomeEventArgs e){DeliverEvent(sender, e);} }重命名 SomeEventWeakEventManager、SomeEvent、SomeEventSource 和 SomeEventArgs 以匹配事件名称。 设置弱事件管理器类的 访问修饰符用于匹配其管理的事件的可访问性。 使用新的弱事件管理器而不是普通事件挂钩。 例如如果代码使用以下模式订阅事件 source.SomeEvent new EventHandlerSomeEventArgs(Source_SomeEvent);将其更改为以下模式 SomeEventWeakEventManager.AddHandler(source, Source_SomeEvent);同样如果代码使用以下模式取消订阅事件 source.SomeEvent - new EventHandlerSomeEventArgs(Source_SomeEvent);将其更改为以下模式 SomeEventWeakEventManager.RemoveHandler(source, Source_SomeEvent);
http://www.hkea.cn/news/14436052/

相关文章:

  • 看网站的关键词WordPress分享无法显示
  • 虚拟主机对网站seo有哪些影响自适应网站建站价格
  • 网站营销推广策划方案不让网站在手机怎么做
  • 公司网站有什么作用wordpress商店模板
  • 在线玩网页游戏h5网站大全推广自己的网站
  • 苏州市建设局老网站qq网页版登录入口手机版
  • 深圳企业推广网站网站开发的软硬件环境
  • 基于js原生的新闻类静态网站建设注册一家小规模公司多少钱
  • 做国际贸易都用什么网站手机上如何申请营业执照
  • 网站上线方案系统的超级宗门
  • 专做婚宴用酒是网站银行软件开发工资一般多少
  • 海淀企业型网站建设网络设计网站
  • 一个完整的网站 技术制作网页填数据
  • 服务器租用网站模板网络营销培训机构排名
  • 做网站设计抬头网站改版不换域名怎么做
  • 电影网站建设哪家便宜淘宝网站品牌设计
  • 建门户网站要多少钱网站程序预装
  • 企业h5网站建设外贸公司网站模板
  • 备案网站名称修改网络营销外包服务网
  • 如何做一个属于自己的网站制作一款app软件大概需要多少费用
  • 制作一个赚钱的网站深圳做企业网站的公司推荐
  • 课程网站建设调研报告电商网站开发需要多少钱
  • 做外贸有哪些好的网站有哪些自主软件开发平台
  • 三亚制作网站上海做网站建设的公司
  • 网站开发和游戏开发游戏网站怎么做推广
  • 做网站主要用哪种语言西青房地产网站建设
  • 网页设计与网站建设指标点今天北京感染了多少人
  • 肥城网站建设做教育网站宣传策略
  • 合肥道路建设从哪个网站可以看到建设厅网站初始数据入库
  • 广告设计公司网站源码电商网站建设综述