【发布时间】:2011-02-16 03:09:52
【问题描述】:
以下是C#。
我正在尝试做一些非常简单的事情(我认为)。我有一个加载 XML 文档的方法
XDocument doc = XDocument.Load(uri);
,但如果出现问题(连接性、文档大小等),我不想占用电脑资源。
所以我希望能够添加一个超时变量,该变量将在给定的秒数后切断该方法。当涉及到异步编程时,我是一个新手,并且发现有这么多示例以这么多不同的方式编写,这让我感到困惑。 . .而且它们都不简单。如果可能的话,我想要一个简单的解决方案。
到目前为止,我对可能的解决方案的想法如下:
1) 包装现有负载的方法
public XDocument LoadXDocument(string uri, int timeout){ //code }
2) 包装器,但作为扩展方法
XDocument doc = XDocument.LoadWithTimeout(string uri, int timeout);
3) 一个通用的扩展方法。
Object obj = SomeStaticClass.LoadWithTimeout(??? method, int timeout);
3),从表面上看似乎非常好,因为这意味着能够一般地将超时添加到许多不同的方法调用,而不是专门绑定到一种类型的对象,但我怀疑它要么 i) 不可能,要么 ii ) 非常困难。
请帮忙。谢谢。
【问题讨论】:
-
缺少编程语言。闻起来像 C#。你可以这样重新标记吗?
标签: c# timer asynchronous