私はスレッド化、タスク、および非同期コーディングについて学んでおり、その概念を毎日取り組んでいる Web フォーム アプリケーションに適用しようとしています。
これまでのところ、私は持っています:
- 次のように構成されたサービス参照:
からのクライアント コールを変更しました
MyServiceClient msc = new MyServiceClient(); try { myData = msc.GetData(); msc.Close(); } catch (Exception) { msc.Abort(); throw; }
に
MyServiceClient msc = new MyServiceClient();
try
{
myData = msc.GetDataAsync().Result;
msc.Close();
}
catch (Exception)
{
msc.Abort();
throw;
}
結果を直接呼び出して、暗黙的にタスクで .Wait() を呼び出し、コードをほとんどそのままにします。
- これは、I/O の実行中にアプリ プール内のスレッドを他の作業のために解放するために正しいですか?
- 例外を別の方法で処理する必要がありますか?
- Close() と Abort() はまだ必要で関連性がありますか?