首页 > 解决方案 > 这段代码会导致内存泄漏吗?

问题描述

我有一个社交网络,我可以在其中对帖子发表评论。我已经使用 ReactionController 实现了这一点,该控制器处理具有指示 API 调用完成的事件的帖子的 API 调用。

我的代码是这样的(在我的“时间线”控制器中,当 UI 要求我做出反应时):

public void PlaceReaction(string reaction) {
    var reactionController = new ReactionController(post);
    reactionController.DishUpdatedEvent += (updatedPost) => {
        // Notify the UI
        UIThreadDispatcher.Invoke(() => SinglePostUpdatedEvent?.Invoke(updatedPost));
    };

    reactionController.PlaceReaction(reaction);
}

在我的 ReactionController 中:

// Saved to API
UIThreadDispatcher.Invoke(() => PostUpdatedEvent?.Invoke(_post));

我担心我对事件的自由使用可能会导致 ReactionController 保留在内存中,但我只希望它在调用期间保留在内存中,直到事件被触发。这会像我想要的那样表现还是我有内存泄漏?

标签: c#memory-leaks

解决方案


推荐阅读