イベントには、同期イベントと非同期イベントが有るようです。
各メソッドの詳細はMSDNを参照して下さい。
SharePointサポートチームのBlogでイベントを実装するに当たっての注意事項が書かれています。
http://blogs.technet.com/sharepoint_support/archive/2009/10/26/3289128.aspx
ここで重要なのは、スレッドの扱いです。
- 同期 = 同じスレッド
- 非同期 = 別スレッド
同期イベントで実装するという事は、
- 負荷のかかる処理を実装すると、結果として画面表示が遅くなる。。はず
- 確実に1回処理される
非同期イベントで実装すると、
- 多少負荷がかかっても、画面表示の速度には直接影響しない
- 何回処理されるか解らない
- 「ItemAdded」の様なイベントでは、オブジェクトが更新される前にも処理される可能性
- 引数「properties」では「AfterProperties」を使えば更新後のオブジェクトで有る事が保障される(処理前に起動された場合はNULLに成ると思われる)
という事です。
結構めんどくさい。。