2

在.NET中调用函数时是否可以设置超时值?我正在使用一个名为 SharpBox 的第三方组件,它循环一组 Dropbox 帐户并将内容拉入我服务器上的给定文件夹。

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 回答