【问题标题】:How to create an async/background process within a WCF operation?如何在 WCF 操作中创建异步/后台进程?
【发布时间】:2012-04-25 13:25:03
【问题描述】:

在我的 WCF 操作中,我将执行操作所需的逻辑:保存记录、获取数据集等,在某些情况下,我还需要记录活动。但是,在这些情况下,我觉得让客户端应用程序等待 WCF 操作来记录活动是没有意义的。我想启动记录过程,然后立即将任何必要的内容返回给客户端,而无需等待记录过程完成。

我不关心记录过程何时完成,只需触发并忘记。

我也更喜欢使用 BasicHttpBinding 来保持最大的互操作性。

这可能吗?有人愿意分享编码示例或带有编码示例的网站链接吗?

【问题讨论】:

    标签: c# wcf logging background-process performance


    【解决方案1】:

    这可以很容易地使用任意数量的线程技术来完成。

    举一个非常简单的例子,试着修改一下:

    // Log something going on.
    System.Threading.ThreadPool.QueueUserWorkItem((args) =>
    {
       System.Diagnostics.EventLog.WriteEntry("my source", "my logging message");
    });
    

    在该 lambda 方法中,您可以使用您喜欢的任何日志记录类,如果您想记录一些当前状态,您可以在记录器中包含局部变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 2011-01-30
      • 2013-06-20
      • 1970-01-01
      相关资源
      最近更新 更多