4 Stimmen

Umfang der Ereignisregistrierung in C#

Könnte es sein, dass der "completed"-Ereignishandler aufgrund der Freigabe von Ressourcen durch den GC nicht aufgerufen wird?

public void StartVideo(WerCamera camera)
    {
        Credential creadential = new Credential() { Email = CurrentUser.Email, Password = CurrentUser.Password, SessionNumber = SessionNumber};
        CommandsClient client = new CommandsClient();
        client.StartVideoCompleted += client_StartVideoCompleted;
        client.StartVideoAsync(int.Parse(camera.Id), creadential, ClientInfo);

        client.CloseAsync();
    }

2voto

Russell Troywest Punkte 8465

Ja, das ist möglich, da Sie alle Verweise auf Client verlieren, sobald die Funktion zurückkehrt.

client.StartVideoCompleted += client_StartVideoCompleted; hält am Ende einen Verweis auf das Objekt mit der Funktion client_StartVideoCompleted, aber das wird nicht erwidert. Sie müssen irgendwie einen Verweis auf den erstellten Client behalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X