-1

WebClientクラスを使用してサーバーからデータをダウンロードする状況があります。クライアント部分とサーバー部分の両方を制御できます。現在、ユーザーがアクションを実行するたびに、Webクライアントが生成され、サーバーへの接続を確立するために使用されます。次に、クライアントはバックグラウンドでいくつかのデータをダウンロードし、それを使用していくつかの作業を行います。ユーザーがこれを繰り返し発生させると、問題が発生します...サーバー側(.netベースではありません!)では、タイムアウト期間後に接続がタイムアウトし、ティアダウンがサーバーに送信されないことがわかります。これは私の質問に私をもたらします...

webclientクラスによって使用されるHTTP接続のティアダウンを通知または強制する適切な方法はありますか?

コード:pMPTFは、.netイベントをアンマネージドワールドに取り込むためのコールバッククラスです。

void Callback(System::Object^ sender, System::Net::DownloadDataCompletedEventArgs^ e)
{
   WebClient^ w = (WebClient^)sender;
   w->Dispose();
   if( e->Error == nullptr && pMPTF != NULL )
      pMPTF->ParseResponse(e->Result);
   else
      pMPTF->ParseResponse( nullptr );
}

与える:

エラーC2039:'Dispose':は'System :: Net::WebClient'のメンバーではありません

4

1 に答える 1

1

その時点で操作は完了です。使用deleteする場合、オブジェクトは破棄されます。マネージC++でオブジェクトがどのように配置されるかを確認することをお勧めします:msdn.microsoft.com/en-us/library/ms177197.aspx

応答を手動で閉じたい場合は、返されたオブジェクトに対してGetWebResponseを呼び出して呼び出すことができます。CloseWebResponse

于 2012-08-13T19:40:45.100 に答える