public void ExceptionThrowing() { SmartThreadPool _smartThreadPool = new SmartThreadPool(); DivArgs divArgs = new DivArgs(); divArgs.x = 10; divArgs.y = 0; IWorkItemResult wir = _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); try { wir.GetResult(); } catch (WorkItemResultException wire) { Assert.IsTrue(wire.InnerException is DivideByZeroException); return; } catch (Exception e) { e.GetHashCode(); Assert.Fail(); } Assert.Fail(); }
public void ExceptionThrowing() { STP smartThreadPool = new STP(); IWorkItemsGroup workItemsGroup = smartThreadPool.CreateWorkItemsGroup(int.MaxValue); DivArgs divArgs = new DivArgs { x = 10, y = 0 }; IWorkItemResult wir = workItemsGroup.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); try { wir.GetResult(); } catch (WorkItemResultException wire) { Assert.IsTrue(wire.InnerException is DivideByZeroException); return; } catch (Exception e) { e.GetHashCode(); Assert.Fail(); } Assert.Fail(); }
public void DoWork() { SmartThreadPool smartThreadPool = new SmartThreadPool(); DivArgs divArgs = new DivArgs(); divArgs.x = 10; divArgs.y = 0; IWorkItemResult wir = smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); Exception e; object obj = wir.GetResult(out e); // e contains the expetion that DoDiv threw if (null == e) { int result = (int)obj; } else { // Do something with the exception } smartThreadPool.Shutdown(); }
public void ExceptionReturning() { bool success = true; SmartThreadPool _smartThreadPool = new SmartThreadPool(); DivArgs divArgs = new DivArgs(); divArgs.x = 10; divArgs.y = 0; IWorkItemResult wir = _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); Exception e = null; try { wir.GetResult(out e); } catch (Exception ex) { ex.GetHashCode(); success = false; } Assert.IsTrue(success); Assert.IsTrue(e is DivideByZeroException); }
public void Div(DivArgs request, IObserver <DivReply> responseObserver) { var response = DivInternal(request); responseObserver.OnNext(response); responseObserver.OnCompleted(); }
public void ExceptionReturning() { bool success = true; STP smartThreadPool = new STP(); IWorkItemsGroup workItemsGroup = smartThreadPool.CreateWorkItemsGroup(int.MaxValue); DivArgs divArgs = new DivArgs { x = 10, y = 0 }; IWorkItemResult wir = workItemsGroup.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); Exception e = null; try { wir.GetResult(out e); } catch (Exception ex) { ex.GetHashCode(); success = false; } Assert.IsTrue(success); Assert.IsTrue(e is DivideByZeroException); }
public void DoWork() { SmartThreadPool smartThreadPool = new SmartThreadPool(); DivArgs divArgs = new DivArgs(); divArgs.x = 10; divArgs.y = 0; IWorkItemResult wir = smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); Exception e; object obj = wir.GetResult(out e); // e contains the expetion that DoDiv threw if(null == e) { int result = (int)obj; } else { // Do something with the exception } smartThreadPool.Shutdown(); }
public void ExceptionThrowing() { SmartThreadPool _smartThreadPool = new SmartThreadPool(); DivArgs divArgs = new DivArgs(); divArgs.x = 10; divArgs.y = 0; IWorkItemResult wir = _smartThreadPool.QueueWorkItem(new WorkItemCallback(this.DoDiv), divArgs); try { wir.GetResult(); } catch(WorkItemResultException wire) { Assert.IsTrue(wire.InnerException is DivideByZeroException); return; } catch(Exception e) { e.GetHashCode(); Assert.Fail(); } Assert.Fail(); }
static DivReply DivInternal(DivArgs args) { long quotient = args.Dividend / args.Divisor; long remainder = args.Dividend % args.Divisor; return(new DivReply.Builder { Quotient = quotient, Remainder = remainder }.Build()); }
static DivReply DivInternal(DivArgs args) { if (args.Divisor == 0) { // One can finish the RPC with non-ok status by throwing RpcException instance. // Alternatively, resulting status can be set using ServerCallContext.Status throw new RpcException(new Status(StatusCode.InvalidArgument, "Division by zero")); } long quotient = args.Dividend / args.Divisor; long remainder = args.Dividend % args.Divisor; return new DivReply { Quotient = quotient, Remainder = remainder }; }
public override Task<DivReply> Div(DivArgs request, ServerCallContext context) { return Task.FromResult(DivInternal(request)); }
public Task <DivReply> Div(ServerCallContext context, DivArgs request) { return(Task.FromResult(DivInternal(request))); }
public Task<DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call<DivArgs, DivReply>(divMethod, channel); return Calls.AsyncUnaryCall(call, request, token); }
public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = CreateCall(__ServiceName, __Method_Div); return(Calls.BlockingUnaryCall(call, request, token)); }
public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call <DivArgs, DivReply>(divMethod, channel); return(Calls.BlockingUnaryCall(call, request, token)); }
public Task <DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call <DivArgs, DivReply>(divMethod, channel); return(Calls.AsyncUnaryCall(call, request, token)); }
private object DoDiv(object state) { DivArgs divArgs = (DivArgs)state; return(divArgs.x / divArgs.y); }
static DivReply DivInternal(DivArgs args) { long quotient = args.Dividend / args.Divisor; long remainder = args.Dividend % args.Divisor; return new DivReply.Builder { Quotient = quotient, Remainder = remainder }.Build(); }
public Task <DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = CreateCall(__ServiceName, __Method_Div); return(Calls.AsyncUnaryCall(call, request, token)); }
public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken)) { var call = new Grpc.Core.Call<DivArgs, DivReply>(divMethod, channel); return Calls.BlockingUnaryCall(call, request, token); }