WCF - 异步启动新线程

时间:2009-11-19 16:34:29

标签: wcf multithreading

设置 在IIS 6中运行的WCF服务 缓存 - Enterprise.Caching

企业需要保留一段时间(缓存)的消息。

另一个进程会将其从缓存中删除。我们可能会收到另一条消息,该消息将从缓存中删除此消息并阻止其处理。

我这样做的一种方式是

  1. 接收message1并将缓存放入(x)分钟
  2. 开始一个在(x - 1)分钟内到期的新主题
  3. 接收首先影响的第二条消息 - 从缓存中删除第一条消息
  4. 线程过期    如果message1仍然存在于数据存储区
  5. 任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我可能会生成一个专用线程,每隔N秒检查一次,看看是否有任何消息可以移出缓存。

缓存WCF消息对象的一个​​重要事项 - 确保在存储之前创建每个消息的缓冲副本(使用Message.CreateBufferedCopy)。对于某些传输,WCF消息实际上将指向网络流,并且网络将被阻止,直到读取消息为止。