如何在不同客户端调用WCF时共享对象?
我认为当客户端执行 new wcfclient() 时,WCF 将创建新线程来处理来自该连接的所有调用? (我希望我是对的)。
因此,如果有不同的客户端调用 WCF(例如计算机 A 和计算机 B),那么 WCF 应该在不同的线程中处理每个客户端。那么如果我想在这些线程之间共享一个对象,我该怎么做呢?
使用静态对象?
不同的客户端调用WCF是否会将其视为不同的进程?或者是不同的线程?
I think when client do new wcfclient(), the WCF will create new thread to handle all the call from that connection? (I hope I am right).
So if there is different client make calls to WCF (say computer A & computer B), then the WCF should handle each client in different thread. So if I want to share a object between those thread, how can I do it?
Use static object?
Is different client calls the WCF will treat it as different process? or is different thread?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果确实只有一个实例应该在所有请求之间共享,那么您需要使用单例模式 。我确信有人会很快指出 - 使用这种模式通常不是一个好主意。您将在锁定和可扩展性方面遇到麻烦。
不过,更好的方法是以某种串行格式保存对象。如果可能的话,可以是文件或数据库。然后,您可以根据后续请求重新具体化该对象。
You'd need to use the singleton pattern, if truly only one instance should be shared across all requests. As I'm sure someone will be quick to point out - using this pattern is generally not a good idea. You will run into trouble with locking and scalability.
Better, though, would be to persist the object in some serial format. Either to a file or a database if that's possible. You can then re-materialize the object on subsequent requests.