Async使用Lambdas完成事件而不是真正的方法?

时间:2011-01-09 10:59:04

标签: silverlight wcf events asynchronous lambda

最近做了相当多的Silverlight编程并且喜欢它但当然Silverlight是异步的所以我被迫设置一个事件处理程序来在异步完成时调用。这当然很好,但我只是得到了很多代码...基本上我需要一个wcf服务的每个调用2个方法。我最近发现了以下

client.LoadClientsCompleted += (sender, e) =>
{
    // My Code
};

client.LoadClientsAsync(clientID);

它似乎有用,它使用lambdas而不是物理方法。据我所知,这并没有改变技术的工作,它仍然是异步的。但它似乎很多地整理了我的代码。

我很想听到有关天气的任何评论我应该使用这个,是否有任何PROS和CONS使用?

正如我所说,直接在一个新方法上的事件也很有效,但从技术上讲,每次调用我都有两种方法......代码正在增长: - )

使用lambda方式我至少在我当前的方法中保留我的回调事件,尽管它只在完成后触发。它似乎使事情变得更容易但这种方法有什么问题吗?

1 个答案:

答案 0 :(得分:3)

一位大职业选手,lambdas可以从周围环境中获取变量的价值:

client.LoadClientsCompleted += (sender, e) => 
{
     // My Code 
     // your code can use clientID here
};
client.LoadClientsAsync(clientID);