public Actor(NetMQContext context, IShimHandler shimHandler, object[] args) { this.self = context.CreatePairSocket(); this.shim = new Shim(shimHandler, context.CreatePairSocket()); this.self.Options.SendHighWatermark = 1000; this.self.Options.SendHighWatermark = 1000; //now binding and connect pipe ends string endPoint = string.Empty; while (true) { Action bindAction = () => { endPoint = GetEndPointName(); self.Bind(endPoint); }; try { bindAction(); break; } catch (NetMQException nex) { if (nex.ErrorCode == ErrorCode.EFAULT) { bindAction(); } } } shim.Pipe.Connect(endPoint); //Create Shim thread handler CreateShimThread(args); }