четверг, июня 23, 2011

F#, вторая серия. Параллельная.

Попытка соорудить способ параллельного выполнения кода по запросу данных из нескольких списков Sharepoint. Собственно, способ предполагалось использовать в веб-части, написанной на C#, выбор F# для реализации способа обусловлен наличием в нём средств для параллельного выполнения асинхронных операций (класс Async).

Упрощённая тестовая программка на C#:

image

Параллельный исполнятель на F#:

image

Однако фокус не удался: из всех списков, переданных в ParallelExecutor, данные добываются только из одного (иногда из первого, иногда из последнего). На всех остальных операция list.Items.GetDataTable() падает с диковинным сообщением <nativehr>0x80010102</nativehr><nativestack></nativestack> Печальная рожица

Похоже, разработчики Sharepoint не сумели подружиться не только с .NET 4.0, но и с F#-классом Async…

Technorati Tags:


2 комментария:

ACrush комментирует...

RPC_E_ATTEMPTED_MULTITHREAD
0x80010102
Attempted to make calls on more than one thread in single threaded mode.

DkmS комментирует...

И как быть? Где нужную mode взять?