c# - 等待 WCF 服务的最佳方式?

标签 c# .net wcf

我正在制作一个基本的自托管 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/

相关文章:

c# - 为什么找不到 System.ServiceModel.WebHttpBinding?

c# - Appium 找不到 2/3 seekbar 的 ID 但都在同一页面上

.net - 在 WCF 中填充 PrimaryIdentity

c# - 使用 WMI 获取 C# 中每个进程的 CPU 和 RAM 使用情况?

c# - 表达式表示 `value' ,其中在 Unity 的线程内调用 StartCoroutine 时预期为 `type' 或 `method group'

.net - 基于声明的 wcf 服务出错 - 无法验证传入策略

.net - 是否可以通过编程方式向 WinForm 添加一些控件?

c# - 'File.Open()' 和 'new FileStream()' 之间的区别

wpf - WCF:单向回调有问题

c# - 未提供所需的模拟级别,或者提供的模拟级别无效