2

.NET で関数を呼び出すときにタイムアウト値を設定することはできますか? 一連の Dropbox アカウントをループし、サーバー上の特定のフォルダーにコンテンツを取り込む SharpBox というサード パーティ コンポーネントを使用しています。

Dim itemsDownload as integer = pollSingleDropboxAccount(accountID)

function pollSingleDropboxAccount(accountID as integer) as integer
   //Utilises Sharpbox to download the files and return the count
   //In here a connection is established using the SharpBox.dll
   //but never gets closed or throws an exception leaving the
   //function to hang indefinitely
end function

Sharpbox はバックグラウンドで HTTPWebRequest を使用して Dropbox API に接続しますが、デフォルトでタイムアウトが無限に設定されているようで、この値を上書きすることはできません。SharpBox に機能リクエストを提出しましたが、回避策として当面の間使用できるものを探しています。

これを回避するために、「pollSingleDropboxAccount」関数の呼び出しをラップして、たとえば 5 分後にあきらめることができるかどうか疑問に思っています。

4

1 に答える 1

1

はい、可能です。

1)関数呼び出し後にタイマーを作成して実行し、開始します

2)タイマーのコールバックで、必要なことを何でも行います(関数を呼び出します)

MSDNでタイマーについて読む

編集: .NET には少なくとも 3 種類のタイマーがあり、動作が異なることに注意してください。それらのいくつかは、タイムアウト後に(あなたの場合は5分ごとに)呼び出されるまで起動Stopし、一部は一度だけ実行されます。

于 2013-02-25T10:50:15.907 に答える