【问题标题】:Capture Third Party DLL events in WCF在 WCF 中捕获第三方 DLL 事件
【发布时间】:2013-08-20 23:51:40
【问题描述】:

第三方向我提供了一个 DLL,它处理提供的数据并通过如下事件返回其结果。

private IBlackbox blackbox;

// Capture the processed data from the BlackBox
public void blackbox_Processed(object sender, BlackBoxEventArgs e)
  {
    string returndata = e.ReturnData;
    // Do something with the data
  }

public void blackbox_Run(string datavalues)
  {
    blackbox.Processed += new EventHandler(blackbox_Processed);
    blackbox = BlackBox.Create(datavalues);
    blackbox.Start(); 
  }

当从 Windows 窗体调用时,此实现可以正常工作,而 blackbox.Processed 事件会在不到一秒的时间内触发。但是,当我在 WCF 方法中实现这一点时,blackbox.Processed 事件永远不会被捕获。

谁能帮忙?

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    很难确定,因为您还没有为您的服务提供代码,但我猜是在您的黑盒组件触发事件之前,对您的服务方法的调用正在返回。您可以查看的一件事是使用 WCF 双工服务,该服务允许您将事件从服务器发布到客户端。

    WCF Duplex Services

    【讨论】:

    • 根据您的建议,我将 DLL 调用构建到双工 WCF 服务中,只是为了获得相同的结果,即没有从黑盒中捕获任何事件。为了测试我是否正确构建了服务,我在服务中放置了一个计时器,可以捕获成功的经过的方法。我想我将不得不与 DLL 供应商交谈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2011-08-28
    • 1970-01-01
    • 2023-03-10
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多