void IDataRequestable.RequestData(int[] origin, int[] stride, int[] shape, VariableResponseHandler responseHandler) { if (this.refVariable is IDataRequestable) { VariableResponseHandler myResponseHandler = new VariableResponseHandler( delegate(VariableResponse resp) { VariableResponse response = new VariableResponse(this, origin, stride, resp.Data, Version); responseHandler(response); }); ((IDataRequestable)refVariable).RequestData(origin, stride, shape, myResponseHandler); return; } ThreadPool.QueueUserWorkItem(new WaitCallback((state) => { try { Array a = GetData(origin, stride, shape); responseHandler(new VariableResponse(this, origin, stride, a, Version)); } catch (Exception ex) { responseHandler(new VariableResponse(this, origin, stride, ex)); } })); }
void IDataRequestable.RequestData(int[] origin, int[] shape, VariableResponseHandler responseHandler) { ((IDataRequestable)this).RequestData(origin, null, shape, responseHandler); }