在WCF中捕获第三方DLL事件

时间:2013-08-20 15:46:24

标签: c# wcf

我已经由第三方提供了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事件永远不会被捕获。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

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

WCF Duplex Services