Será que isso Asynchronous Lambda Código Cryptica fazer o que eu acho?

votos
0
    Action<SPItemEventProperties> deleteAction = DeleteWorkspace;
    AsyncCallback deleteDone = deleteAction.EndInvoke;
    SPSecurity.RunWithElevatedPrivileges(() => deleteAction.BeginInvoke(properties, deleteDone, null));

Portanto, este é supor para chamar DeleteWorkspace de forma assíncrona e, em seguida, chamar EndInvoke quando o seu feito, eu escrevi isso, mas eu não sou positivo que vai funcionar corretamente. I atravessou e parece funcionar, mas a sintaxe está me fazendo segundo me acho porque eu nunca vi isso feito assim na net ...

Comentários?

Publicado 19/05/2009 em 19:57
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Ele deve funcionar, mas para realmente entender isso vamos fingir que foram escritas assim:

void RunAsync<T>(Action<T> action)
{
    AsyncCallback Done = action.EndInvoke;
    SPSecurity.RunWithElevatedPrivileges(() => action.BeginInvoke(properties, Done, null));
}

RunAsync(DeleteWorkspace);

Note que no código acima, parece que o retorno de chamada 'Done' vai sair do âmbito de imediato. No entanto, o compilador irá capturar (fechar sobre) com um fechamento, de modo que ele esteja disponível quando necessário.

Respondeu 19/05/2009 em 20:23
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more