我有一个应用程序,它不断(+-100毫秒)从PLC中读取订单,然后将它们放入一个模型中,多个客户端会读取这个模型。 为此,我使用了锁语句。
订单读取线程:
lock (model) {
//update object
}
客户端读取:
lock (model) {
//serialize object to json string
}
send over tcp stream to client.
但我也可以用于更新:
Interlocked.ExChange(oldObj, newObj)
我不希望我的客户需要等待正在进行订单读取线程中的锁定。
而且我绝对不希望客户阻塞我的订单读取线程。
如果我使用Interlocked,会更好吗?
感谢您的建议!