我想使用 WCF 从/向 MSMQ 获取和发送。FeedWorker
方法将从 MQ(来自 queue1)获取消息并提供给将处理消息的线程,然后将结果保存到queue2
. FeedWorker
并且ProcessCustomer
在同一个项目中。
public void FeedWorker()
{
while(true)
{
var msg = GetFromMQ();
ThreadPool.QueueUserWorkItem(ProcessCustomer, msg);
}
}
public void ProcessCustomer(object o)
{
// Do some work
// ...
SentToMQ(result);
}
为了实现这一点,我想使用netMsmqBinding
.
namespace Test
{
public class WcfService : IWcfService
{
public void Get(Customer customer)
{
ThreadPool.QueueUserWorkItem(ProcessCustomer, customer);
}
public void SaveResult(string result)
{ }
}
public void FeedWorker()
{
using (var serviceHost = new ServiceHost(typeof(WcfService)))
{
serviceHost.Open();
}
}
public void ProcessCustomer(object o)
{
// Do some work
// ...
WcfServiceClient.SaveResult(result);
}
}
我觉得我做错了什么。当我这样做时,我无法接收和发送到不同的队列。如何实施?