引发事件后,不会立即将控制权交给呼叫者

时间:2020-02-19 10:32:05

标签: c# asp.net-mvc-4

我有一个asp.net mvc 4.7.2网站。我有一个引发事件的类,并且在另一个类中处理该事件。所以我的代码看起来像:

        RedirectDeleting?.Invoke(this,new RedirectDeletingArgs(contentId,culture));

        _redirectUrlService.Delete(id);

        RedirectDeleted?.Invoke(this,new RedirectDeletedArgs(contentId,culture));

在处理程序中,我的代码如下:

RedirectsService.RedirectDeleted += RedirectsService_RedirectDeleted;

        private void RedirectsService_RedirectDeleted(object sender, RedirectDeletedArgs e)
    {
        RemoveRedirectFromStorage(e);
    }

我希望首先引发事件RedirectDeleting,然后控制转到处理程序,因此在我的另一个类中,应调用RedirectsService_RedirectDeleted方法。

发生的事情是该事件被引发,在类引发事件中继续执行,然后我的事件得到处理,这是为时已晚。我的处理程序需要在调用_redirectUrlService.Delete方法之前执行。

我没有执行任何异步操作等。我是否缺少某些内容或做错了什么?

0 个答案:

没有答案