public static void RunDevice(CancellationTokenSource cancellor) { var deviceThread = new Thread(() => { var reqSock = new NanomsgSocket(Domain.SP_RAW, Protocol.REP); int reqSockId = reqSock.SocketID; reqSock.Bind("tcp://127.0.0.1:" + reqPort); var repSock = new NanomsgSocket(Domain.SP_RAW, Protocol.REQ); int repSockId = repSock.SocketID; repSock.Bind("tcp://127.0.0.1:" + repPort); // HACK: The nn_device loop is currently only terminated using NN.Term() int repDevice = NN.Device(reqSockId, repSockId); reqSock.Dispose(); repSock.Dispose(); }); deviceThread.Start(); deviceThread.Join(TimeSpan.FromMilliseconds(40)); }