同期/非同期イベントって、、、

イベントには、同期イベントと非同期イベントが有るようです。
各メソッドの詳細はMSDNを参照して下さい。

SharePointサポートチームのBlogでイベントを実装するに当たっての注意事項が書かれています。
http://blogs.technet.com/sharepoint_support/archive/2009/10/26/3289128.aspx

ここで重要なのは、スレッドの扱いです。

  • 同期 = 同じスレッド
  • 非同期 = 別スレッド

同期イベントで実装するという事は、

  • 負荷のかかる処理を実装すると、結果として画面表示が遅くなる。。はず
  • 確実に1回処理される

非同期イベントで実装すると、

  • 多少負荷がかかっても、画面表示の速度には直接影響しない
  • 何回処理されるか解らない
  • 「ItemAdded」の様なイベントでは、オブジェクトが更新される前にも処理される可能性
    • 引数「properties」では「AfterProperties」を使えば更新後のオブジェクトで有る事が保障される(処理前に起動された場合はNULLに成ると思われる)

という事です。

結構めんどくさい。。