我有一个Web服务实例化对象,订阅该对象上的事件,然后调用该对象上的一个函数,这将导致事件被触发。有没有办法等待事件触发,以便我可以从EventArgs中获取结果,以便将这些结果作为Web服务的结果传递给它?如何从WCF Web服务中监听对象上的事件?
回答
您将需要某种与事件处理程序中获取信号的事件(例如ManualResetEventSlim)关联的同步原语。然后您的请求线程可以等待事件并在事件发生后收集结果并生成响应
但是,更自然的模型可能是将服务创建为异步服务,并且只能在异步服务时完成处理操作完成 - 我创建了a sample of this一会儿回
这听起来类似于我在这里找到的:http://stackoverflow.com/questions/475617/wrapping-an-asynchronous-method-synchronously-in-c-sharp但使用AutoResetEvent。 AutoResetEvent,ManualResetEvent和ManualResetEventSlim有什么区别? – adam0101
AutoResetEvent和ManualResetEvent是底层内核对象的包装,而ManualResetEventSlim是一个完全托管的事件(所以更轻量化)。但ManualResetEventSlim仅在.NET 4.0中可用。服务员唤醒后,AutoResetEvents会将自己重置为无信号。手动事件必须手动重置 –
- 1. WCF监听服务总线
- 2. WCF服务监听器
- 3. 听某些事件(对象监听器)
- 4. Ember.js如何监听从服务器发起的事件?
- 5. 对象,要求对事件监听
- 6. javascript对象的jquery事件监听器
- 7. Android服务监听触摸事件
- 8. 如何在IIS下托管服务时为WCF ServiceHost事件创建监听器?
- 9. 如何在java中切换对象与事件监听器?
- 10. 如何监听postbin上的事件并从中获取值?
- 11. Web服务 - 没有端点监听
- 12. 单身人士对象上的骨干事件监听器
- 13. 停止监听或删除Image()对象onload事件的事件
- 14. WCF服务如何与IIS监听相同的端口?
- 15. 服务如何监听触摸手势/事件?
- 16. ZF2 - 如何监听事件并因此触发服务?
- 17. Web服务或API over数据库更改中的监听事件
- 18. 从WCF Web服务
- 19. 在Angular服务中测试事件监听器的输出
- 20. 从tableviewcell监听事件
- 21. Spotify web-api暂停事件监听器
- 22. 在队列上监听Windows Server Service Bus(WSSB)1.1的WCF服务
- 23. NHibernate的保存/更新事件监听器:监听子对象节省
- 24. 如何在WCF Web服务中返回对象?
- 25. Web服务的PostConstruct servlet上下文监听器的contextInitialized
- 26. 事件监听器?
- 27. Laravel监听器监听多个事件
- 28. jQuery事件监听
- 29. WCF Web服务上的System.OutOfMemoryException
- 30. 如何在Javascript中监听Tapped事件
是方法的调用和事件的触发同步还是异步? –
它们是异步的 – adam0101
也就是说,在对象上调用方法会启动一个异步进程,最终完成并触发事件。这是你的意思吗? – adam0101