2
我有一個異步下載類,我想用服務層的不同設置來控制。Func Invoke,有沒有更好的解決方案
在下載器類中,我有以下設置來控制如何處理下載。 不介意顯示器等繼續專注於祈求:)
public Func<CompletionParams, bool> CompletionQuery { get; set; }
public class CompletionParams
{
public int ItemsToDownload { get; set; }
public long TimeoutInMilliseconds { get; set; }
}
//一些其他的東西放在這裏
while (!this.CompletionQuery.Invoke(new CompletionParams { ItemsToDownload = items.Count(), TimeoutInMilliseconds = sw.ElapsedMilliseconds }))
lock (this.waitForMe)
Monitor.Wait(waitForMe, 250);
然後配置我的下載與類似服務層:
downloaderFoo.CompletionQuery = limit =>
limit.ItemsToDownload >= 22 || limit.TimeoutInMilliseconds > 2000;
但我不喜歡這樣的事情是,while循環使用.Invoke
有沒有更好的方法來使用多功能的lambda表達式來控制流量?
Invoke有什麼問題? – JohnC 2011-03-07 21:14:59