ネットワークを介して装置をポーリングして情報を取得し、処理してからユーザーに送信するサーバーがあります。 機器調査は同期ブロッキング機能になります。非同期呼び出しで同期関数をラップする#
私の質問は:
タスクを使用して、この機能または別の非同期パターンを実行するために独自の非同期関数のバージョンを作成する方法?
機器から情報を取得するには、次のコードを考えてみましょう:
IEnumerable<Logs> GetDataFromEquipment(string ipAddress)
{
Equipment equipment = new Equipment();
//Open communication with equipment. Blocking code.
int handler = equipment.OpenCommunication(ipAddress);
//get data from equipment. Blocking code.
IEnumerable<Logs> logs = equipment.GetLogs(handler);
//close communication with equipment
equipment.CloseCommunication(handler);
return logs;
}
おかげ
を待つあなたはまず 'GetLogs'非同期を作ります。 – Servy
どうすればいいですか... –
IOメソッドを非同期にする必要があります。 ポストOpenCommunicationメソッドです。 と私はまずそれを行う方法を説明します。 あなたのコミュニケーションはどのように実装されていますか? どのような.netファシリティ/クラスですか? –