private void DeviceConnector(object source, Device.Connector.DeviceConnectorArgs e) { if (e == null) { return; } IRunDevice runDevice = this.DeviceManager.GetDeviceFromCode(e.DeviceToDevice.DeviceCode); if (runDevice != null) { Func <IFromDevice, IDeviceToDevice, object> deviceConnctor = runDevice.RunDeviceConnector; DeviceConnectorToken token = new DeviceConnectorToken(e.FromDevice.DeviceID, deviceConnctor); deviceConnctor.BeginInvoke(e.FromDevice, e.DeviceToDevice, new AsyncCallback(DeviceConnectorCallback), token); } }
private void DeviceConnectorCallback(IAsyncResult ar) { DeviceConnectorToken token = (DeviceConnectorToken)ar.AsyncState; IRunDevice sourceDevice = this.DeviceManager.GetDevice(token.FromDeviceID); if (sourceDevice == null) { return; } object obj = null; try { obj = token.DeviceConnectorAsync.EndInvoke(ar); } catch (Exception ex) { try { sourceDevice.DeviceConnectorCallbackError(ex); } catch (Exception e) { this.Logger.Error(true, "", e); } } try { sourceDevice.DeviceConnectorCallback(obj); } catch (Exception ex) { this.Logger.Error(true, "", ex); } }