none
在方法里面重新给event赋值什么意义? RRS feed

  • 问题

  • public event EventHandler RequestClose;

    void OnRequestClose() {

    EventHandler handler = this.RequestClose; //这个地方有什么意义?直接用this.RequestClose不行吗

    if (handler != null) handler(this, EventArgs.Empty); }

    • 已移动 Jie Bao 2011年8月9日 16:24 (发件人:Windows Presentation Foundation)
    • 已移动 Sheng Jiang 蒋晟Moderator 2011年8月14日 21:19 (发件人:Visual C#)
    2011年8月9日 10:05

答案

  • 由于应用程序可以有多个线程,事件的触发可以和事件的挂接同时进行,所以在触发事件之前做个备份避免线程间访问冲突比较好。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年8月9日 17:50
    版主

全部回复

  •  this.RequestClose 当左值时,他只能用+= -=,不能作为一般委托对象来进行方法调用。

    所以你需要先把它作为右值,然后通过EventHandler来调用方法。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年8月9日 16:24
  • 由于应用程序可以有多个线程,事件的触发可以和事件的挂接同时进行,所以在触发事件之前做个备份避免线程间访问冲突比较好。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年8月9日 17:50
    版主