好吧,我有一个应用程序会在启动时加载一些数据;但是,每种方法都依赖于前一种方法收集的数据。所以我想知道如何创建这样的加载序列并等待每个方法在 .NET4 中异步完成。
注意:我知道这可以通过 .NET4.5 的 async \ await 功能轻松实现,但我必须坚持使用 .NET4 [对于 Windows XP 用户]。
到目前为止,我尝试的是使用委托和事件将方法链接在一起;然而,事实证明这是非常错误的代码。
好吧,我有一个应用程序会在启动时加载一些数据;但是,每种方法都依赖于前一种方法收集的数据。所以我想知道如何创建这样的加载序列并等待每个方法在 .NET4 中异步完成。
注意:我知道这可以通过 .NET4.5 的 async \ await 功能轻松实现,但我必须坚持使用 .NET4 [对于 Windows XP 用户]。
到目前为止,我尝试的是使用委托和事件将方法链接在一起;然而,事实证明这是非常错误的代码。
您是否尝试过使用Task.ContinueWith?
更多信息请参阅:http: //msdn.microsoft.com/en-us/library/dd537612.aspx
我只是在解决“链接”问题。不是线程,异步或其他人在说什么:)
一个非常简单的方法是使用这样的扩展方法:
public static TOut Then<TIn, TOut>(this TIn obj, Func<TIn, TOut> convert)
{
return convert(obj);
}
给定一组方法:
string Init();
int Convert(string str);
int Add(int i);
你可以写:Init().Then(Convert).Then(Add)
等等,读起来也不错。