3

第三方向我提供了一个 DLL,该 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 事件永远不会被捕获。

任何人都可以帮忙吗?

4

1 回答 1

1

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

WCF 双工服务

于 2013-08-20T15:51:40.827 回答