【发布时间】:2013-05-17 04:53:32
【问题描述】:
我创建了一个 Windows 服务来托管 WCF 服务。它没有问题,但我在网上注意到很多人构建他们的服务,以便在 BackgrounWorker 中实例化 servicehost 对象。我只是想知道使用这种模式的理由/优势是什么?
这是我的意思的一个例子。
{
internal static ServiceHost myHost = null;
BackgroundWorker worker;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
//throw new NotImplementedException();
if (myHost != null)
{
myHost.Close();
}
myHost = new ServiceHost(typeof(ServicetohostinWindow.Service1));
myHost.Open();
}
}
【问题讨论】:
-
阅读并告诉我 :) 如果您可以将 ServiceBehavior 设置为在每次调用时打开新线程,为什么要这样做?也许是因为异步原因?
标签: c# wcf windows-services backgroundworker