2014-12-05 1 views
0

У меня есть элемент списка с несколькими вложениями, добавленными к нему. Как только он будет добавлен, будет запущено событие ItemAdded.Pause ItemДобавлено событие до тех пор, пока все вложения не будут добавлены к нему

Но если я попытаюсь получить доступ к объекту properties.ListItem.Attachments, он иногда дает мне 0 или число меньше оригинальных прикрепленных вложений.

Если я сплю свою нить в течение нескольких секунд, я получаю остальную часть своих вложений в свойстве properties.ListItem.Attachments. Таким образом, похоже, что событие ItemAdded вызывается до того, как все вложения будут добавлены в элемент списка.

Есть ли способ для меня приостановить событие ItemAdded, пока все мои вложения не будут добавлены в список?

ответ

0

В итоге я использовал ItemAttachmentAdded вместе с ItemAdded.

Поскольку ItemAdded вызывается перед ItemAttachmentAdded, я поставил замок на статический объект в ItemAdded и освободить его после выполнения ItemAdded события завершена.

В ItemAttachmentAdded Я проверяю блокировку на этом объекте и продолжаю только после того, как я получу блокировку, которая гарантирует, что мой объект ItemAttachmentAdded будет запущен после завершения моего события ItemAdded.

Lock(object){} 
0

Используйте событие ItemAttachedAdded.

+0

Я пытаюсь скопировать все вложения в базу данных ** после ** Я сохранил исходный элемент в базе данных. Поэтому мне нужно сделать это в «ItemAdded». В любом случае я закончил использование 'ItemAttachmentAdded' вместе с' ItemAdded' – Rohit

Смежные вопросы