private void ServiceConnector(object source, Service.Connector.ServiceConnectorArgs e) { if (e == null) { return; } IRunDevice runDevice = this.DeviceManager.GetDeviceFromCode(e.ServiceToDevice.DeviceCode); if (runDevice != null) { Func <IFromService, IServiceToDevice, object> serviceConnctor = runDevice.RunServiceConnector; ServiceConnectorToken token = new ServiceConnectorToken(e.FromService.ServiceKey, serviceConnctor); serviceConnctor.BeginInvoke(e.FromService, e.ServiceToDevice, new AsyncCallback(ServiceConnectorCallback), token); } }
private void ServiceConnectorCallback(IAsyncResult ar) { ServiceConnectorToken token = (ServiceConnectorToken)ar.AsyncState; IService sourceService = ServiceManager.GetService(token.FromServiceKey); if (sourceService == null) { return; } object obj = null; try { obj = token.DeviceConnectorAsync.EndInvoke(ar); } catch (Exception ex) { try { sourceService.ServiceConnectorCallbackError(ex); } catch (Exception e) { this.Logger.Error(true, "", e); } } try { sourceService.ServiceConnectorCallback(obj); } catch (Exception ex) { this.Logger.Error(true, "", ex); } }