我有一個有趣的場景,我遇到了問題,而且我無法確定最佳解決方案。定時方法調用 - 如何在沒有等待操作完成時間到期時繼續工作?
說我有以下的foreach循環
Request[] requestArray = //Get Array of Request objects from somewhere
foreach(IRequest r in requestArray)
{
var response = r.MakeRequest();
}
public class Request:IRequest
{
public double IntervalInSeconds {get;set;} //Allowed Time To Complete Request
public Response MakeRequest()
{
//Perform arbitrary operation, could be long or short running
}
}
public interface IRequest
{
Response MakeRequest();
}
問:我需要能夠做的就是爲IntervalInSeconds是指定的要求有多長時間了給每個請求的值在我們繼續之前從MakeRequest()返回。例如,如果我們將其設置爲10,並且經過10秒,我想繼續前進,並且完全忘記現有的MakeRequest()調用。
我研究了很多不同的方法可能用來完成這一點,但不知道如何真正做到這一點。
那很好,如果你不介意額外的阻塞。 – 2013-03-10 09:47:29