执行异步任务的对象的生命周期

时间:2014-08-01 18:10:59

标签: c# web-services asynchronous

我有以下代码:

void loginButton_Click(object sender, EventArgs e)
{
    var service = new MyService();
    service.LoginCompleted += (sender2, e2) =>
    {
        //closes the animated loading dialog and show the logged in screen
    };

    service.LoginAsync("user", "password");
    //starts an animated "loading" dialog
}

我不确定这是否是正确的方法,因为我不知道GC是否可以在MyService方法等待完成时从内存中删除LoginAsync实例LoginCompleted事件永远不会被调用。

1 个答案:

答案 0 :(得分:0)

只要有对MyService对象的任何引用,GC就不会删除该对象。因此,如果LoginAsync对我认为具有的MyService对象有任何引用,那么它将不会被GC控制。