2013-06-07 8 views
5

Iが(私はTinyIoC容器内の実装を集める)私はインターフェイスを実装する任意に更新を呼び出すことができるように、それを実装するために、同じアプリケーションドメイン内の他のアプリを希望F位C#で実装できる非同期f#インターフェイスを定義する方法は?

type IConnect = 
    abstract Update: seq<DataType> -> Async<bool> 

のインターフェイスを定義しています。戻り値の型Async<bool>は、更新を待つことなく更新が成功したかどうかを示すことができます。そして私はアプリを並行して更新することができます。

他のアプリはC#で書かれています。リファレンス(模擬)実装を作成し始めたときに、これは実装者がFSharpAsync型を使用する必要があることに気付きました。

したがって、インターフェイスを定義して、C#で実装しやすく、非同期の状態を維持する方法を教えてください。

答えて

3

TaskまたはおそらくIObservableを使用してください。 asyncワークフローとTask<T>quiteeasilyの間で変換できます。これはC#またはほとんどの.Net言語で動作するシンプルなタイプです。

type IConnect = abstract Update: seq<DataType> -> Task<bool> 
+0

は '、Async.AwaitTaskありがとう:タスク<'a> - >非同期<'a>は'正常に動作するようです – Remko

関連する問題