回应回应

时间:2016-03-23 14:21:57

标签: c# mvvm

我有第三方库,它是用C ++开发的。我的C#app调用此库中的不同函数。函数的结果通过回调返回。该应用程序有4层:View-VM-BusinessLayer-ServiceLayer。在服务层我创建第三方对象的实例并调用它的函数。 SL是单身人士。这是代码片段 SL: 公共任务< bool> InitializeAsync() {     OnConnectionStateChangedEventHandler connectionStateChangedEventHandler = null;     OnBootCompletedEventHandler bootCompletedEventHandler = null;     if(_coreObject == null)         _coreObject = new CoreObject();     _coreObject.OnBootCompleted + = bootCompletedEventHandler;     _coreObject.OnConnectionStateChanged + = connectionStateChangedEventHandler;     .... } BL: ublic类LoginBusinessLogic:ILoginBusinessLogic {     public Task< LoginResult> LoginAsync(字符串服务器,字符串userName)     {         尝试         {             var address = Common.Helpers.CreateAddress(userName,server);             return CoreService.Instance.InitializeAsync(address);         }         catch(例外)         {             // TODO:记录异常             return null;         }     } VM: var result = await _loginBusinessLogic.LoginAsync(Server,UserName); 我需要响应VM中核心对象的事件(OnBootCompleted等)。我尝试使用TaskCompletionSource,但是这个想法是,你调用一些东西并等待事件,在事件结束后,你设置结果。但我需要订阅活动整个应用程序的生活。所以我在考虑事件转发。但我不确定,如果这是一个很好的解决方案。

0 个答案:

没有答案