通过Mvvm Light源码我们可以知道Messenger的实现细节,如果你现在还不能理解这些代码也没关系,很多东西理解起来远比使用起来难,Messenger也是如此,它使用起来很简单,由于Messenger只公开了一些消息注册和发送方法,使用者一看便知方法的功能,而只需关注要发送的数据和接收的对象就可以了。
1、发送:
1 Messenger.Default.Send<string>("StartRecordVis");//开始录制可见光,发送消息
2、接收:
1 1 Messenger.Default.Register<string>(this, BDRecordVideo);// 开始录制 2 2 private void BDRecordVideo(string obj) 3 3 { 4 4 switch (obj) 5 5 { 6 6 case "StartRecordVis": 7 7 this.visVideo.StartCapture("vis");//录制可见光 8 8 break; 9 9 case "StartRecordInf": 10 10 this.infVideo.StartCapture("inf");//录制红外 11 11 break; 12 12 } 13 13 }
3、清理
Messenger通过全局的字典集合来保存弱引用关系,因此在对象不使用时,我们要养成清理的习惯,调用Unregister来从字典集合中移除引用关系。
1 Messenger.Default.Unregister(this);
原文地址:https://www.cnblogs.com/LY-HeroesRebor/p/9024700.html
时间: 2024-09-29 17:49:40