私は、カスタムインターフェイスでデュプレックスチャンネルを使用してWCFに接続するwinFormアプリケーションを持っています。WCFがWinFormイベントでデュプレックスイベントを発生させてnullにする
コールバックは正常に機能しますが、コールバックイベントからイベントを発生させようとすると、私は泥の中で立ち往生します。
私がWCFサービスに接続するために使用するサポートクラスでは、単一のイベントを使用してメッセージを生成し、メインアプリケーションフォームの出力テキストボックスコントロールに表示します。
サポートクラスでOnEventのが定義されている:
protected virtual void OnMsgEvent(SurfaceArgs e)
{
MsgEventEventHandler temp = MsgEvent;
if (temp != null)
{
temp(this,e);
}
}
WCFコールバックから実装イベントが定義されている:
public void OnEvent4(string sValue)
{
OnMsgEvent(new SurfaceArgs(sValue, EventLogEntryType.Information));
}
私はWCFイベントから電話をかけるときは、 のOnMsgEvent検証nullは、常にnullになります。
if (temp != null)
これは、WCFからイベントを発生させた場合とは別のスレッドや何かにあるかのように、呼び出す方法や委任方法がわからないため、OnMsgEventを呼び出すことができます。
現時点では、メインフォームへのポインタを渡してパブリックメソッドを呼び出しています。私はこの一時的なソリューションがTextboxコントロールのInvokeを必要とすると予想しましたが、そうではありません。
解決策はおそらく単純ですが、私はまだそれを見ていません。 =)