Данная строчка при вызовк в главном потоке выполняется нормально. При вызове ее в дочернем потоке на тех же условиях, возникают эксепшены.
В МСДН написано:
Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
Поясните в чем причина эксепшнов и как с ними бороться?
A>FixedDocumentSequence OldSeq = OldXpsDoc.GetFixedDocumentSequence();
A>
A>Данная строчка при вызовк в главном потоке выполняется нормально. При вызове ее в дочернем потоке на тех же условиях, возникают эксепшены. A>В МСДН написано: A>Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code. A>Поясните в чем причина эксепшнов и как с ними бороться?
Как создаете поток? Видимо ваш поток должен создаваться в STA, см. в сторону:
Thread thread = new Thread(MethodWhichRequiresSTA);
thread.SetApartmentState(ApartmentState.STA);
Если до 4-го фреймворка или в противном случае в сторону TPL:
var scheduler = TaskScheduler.FromCurrentSynchronizationContext();
A>>Данная строчка при вызовк в главном потоке выполняется нормально. При вызове ее в дочернем потоке на тех же условиях, возникают эксепшены. A>>В МСДН написано: A>>Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code. A>>Поясните в чем причина эксепшнов и как с ними бороться? S>Как создаете поток? Видимо ваш поток должен создаваться в STA, см. в сторону:
Не помогает. Смотрю в сторону "Using Libraries from Partially Trusted Code" и чего то безрезультатно
S>
S>Thread thread = new Thread(MethodWhichRequiresSTA);
S>thread.SetApartmentState(ApartmentState.STA);
S>
S>Если до 4-го фреймворка или в противном случае в сторону TPL: S>
A>>Данная строчка при вызовк в главном потоке выполняется нормально. При вызове ее в дочернем потоке на тех же условиях, возникают эксепшены. A>>В МСДН написано: A>>Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code. A>>Поясните в чем причина эксепшнов и как с ними бороться? S>Как создаете поток? Видимо ваш поток должен создаваться в STA, см. в сторону:
S>
S>Thread thread = new Thread(MethodWhichRequiresSTA);
S>thread.SetApartmentState(ApartmentState.STA);
S>
S>Если до 4-го фреймворка или в противном случае в сторону TPL: S>
Здравствуйте, _d_m_, Вы писали:
___>Здравствуйте, akamda1989, Вы писали:
A>>Поясните в чем причина эксепшнов и как с ними бороться?
___>Причина эксепшенов оператор зроу. Боротся с ними при помощи трай-кэтч.
___>Ну, а если намек не понятен, какие конкретно исключения выбрасываются?
Разобрался. Я вызывал в функции обратного вызова TcpListens, которая по умолчанию MTA наверное. Можно ее сделать STA как-то? Или надо отказаться от функции обратного вызова?
A>Разобрался. Я вызывал в функции обратного вызова, которая по умолчанию MTA наверное. Можно сделать STA как-то?
Не, нельзя. Можно внутри сделать поток и сделать его STA.
Здравствуйте, akamda1989, Вы писали:
A>Здравствуйте, _d_m_, Вы писали:
___>>Здравствуйте, akamda1989, Вы писали:
A>>>Поясните в чем причина эксепшнов и как с ними бороться?
___>>Причина эксепшенов оператор зроу. Боротся с ними при помощи трай-кэтч.
___>>Ну, а если намек не понятен, какие конкретно исключения выбрасываются?
A>Разобрался. Я вызывал в функции обратного вызова TcpListens, которая по умолчанию MTA наверное. Можно ее сделать STA как-то? Или надо отказаться от функции обратного вызова?
Conrol.BeginInvoke/Invoke или Control.Dispatcher.BeginInvoke/Invoke
ну опять же методом телепатии, т.к. исходных данных 0.001