private void AddStuffToBQAndClose(object ostate) {
object[] state = (object[])ostate;
BlockingQueue bq = (BlockingQueue)state[0];
ISender target = (ISender)state[1];
foreach (object o in this.CurrentInvokeState.RetValues) {
if (CurrentInvokeState.EnqueueIntervalInMillisec >= 0) {
Thread.Sleep(CurrentInvokeState.EnqueueIntervalInMillisec);
}
RpcResult rs = new RpcResult(target, o);
bq.Enqueue(rs);
}
if (CurrentInvokeState.IntervalBetweenLastEnqueueAndClose >= 0) {
Thread.Sleep(CurrentInvokeState.IntervalBetweenLastEnqueueAndClose);
}
bq.Close();
}
}