我正在制作一个基本的自托管 WCF 服务,我只是想知道让它在接受请求时等待的最佳方法是什么?我发现的所有基本教程都只是使用 Console.ReadLine 来等待用户按回车键退出。这对于实际应用来说似乎不太实用。我试了一会儿(真的);循环,但这消耗了所有可用的 CPU 周期,因此它不是一个选项。我也试过 Thread.Sleep(0),但是服务在休眠时不会接受请求,所以这也没有用。我确信有一些常见的方法可以让您的程序“停止”以等待 WCF 请求;有人知道怎么做吗?
我正在使用 C#、.NET 3.5 sp1。
最佳答案
如果您在单独的线程中运行它(因为它是自托管的),一个简单的选择是使用 ManualResetEvent。
只需在 WCF 线程中调用 manualResetEvent.WaitOne();
。这将阻塞(如 Console.ReadLine),直到从单独的线程调用 manualResetEvent.Set()
。
这里的好处是您还可以有一个干净的机制来关闭服务。
关于c# - 等待 WCF 服务的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664733/