|
static и многопоточность
|
|||
---|---|---|---|
#18+
вопрос такой в своем приложении использую стороннюю библиотеку. Все отрабатывает на ура. Добавил многопоточность и все финита ля комедия... При доступе к статичным свойствам и методам классов внутри нее - каша полная. Исходников библиотеки нет. Можно както малой кровью изолировать статичные объекты одного потока от другого в рамках одного приложения? Многопоточность самая простая Thread t = new Thread(Run); t.Start(); Спасибо заранее! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 15:35 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswell...изолировать статичные объекты одного потока от другого ... Статические объекты общие для всех потоков в пределах одного домена приложения, т.е. не существует статических свойств (методов и др.) одного потока и какого-то другого потока. Вам требуется не изоляция, а синхронизация доступа к ним. http://msdn.microsoft.com/ru-ru/library/c5kehkcz.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 15:40 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
c Lock все понятно. Нет доступа к исходникам библиотеки. По-этому и синхронизация тут невозможна... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 15:43 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswell, А зачем Вам исходники библиотеки?! Создайте свой вспомогательный класс, который будет обеспечивать синхронный доступ к свойствам/методам сторонней библиотеки, и обращайтесь к нему, а не к библиотеке. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 15:50 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswell, такая возможность есть, но только для своих переменных с помощью атрибута ThreadStatic. Раз проблемы возникают во внешем коде, значит единственный метод это синронизация доступа к ее методам. Создай класс-обертку и работай с внешней библиотекой только через неё. Тогда у тебя будет единая точка входа где можно будет выполнять синронизацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 15:51 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
bazile, ThreadStatic посмотрю, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 16:01 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswellИсходников библиотеки нет. Можно расковырять dotpeek'ом, reflector'ом и т.д. Тогда будут исходники. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 16:07 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswellМожно както малой кровью изолировать статичные можно попробовать, если очень нужно , это некий Remouting - обернуть их в TCP, запустить эти библиотеки как разные приложения потом по TCP дёргать. метод довольно экстравагантный, но зато его можно раскидать по нескольким компам. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 18:43 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
beg-in-erможно попробовать, если очень нужно , это некий Remouting - обернуть их в TCP, запустить эти библиотеки как разные приложения потом по TCP дёргать. метод довольно экстравагантный, но зато его можно раскидать по нескольким компам. И для чего все это?! Не проще использовать вышеуказанные способы?! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 19:18 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
LexxxxxИ для чего все это?! Не проще использовать вышеуказанные способы?! для каждой задачи свои методы. этот метод прекрасен тем, что мы запросто можем выйти за рамки одной машины и паралелить до посинения. при особом желании , можно вообще купить полчаса Xeon E5650 за 30 копеек http://www.1gb.ru/price_cloud.php и туда паралелить. каждый творит свои чудеса. ну а оборачивать вызовы бывает тоже накладно, надо понимать что там блокировать, а вдруг там много весёлово... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 19:29 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswellМожно както малой кровью изолировать статичные объекты одного потока от другого в рамках одного приложения? грузить стороннюю библиотеку в разные домены для каждого потока ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 22:16 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswellc Lock все понятно. Нет доступа к исходникам библиотеки. По-этому и синхронизация тут невозможна... Каких образом коррелирует lock с доступом к исходникам библиотеки? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 23:23 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
МСУ, таким, что долго отрабатывает как раз сторонний функционал и ожидая выполнения статичных методов никакой пользы от многопоточности не будет. Опять убеждаюсь, хочешь сделать хорошо - пиши сам ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 12:33 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
ИзопропилaswellМожно както малой кровью изолировать статичные объекты одного потока от другого в рамках одного приложения? грузить стороннюю библиотеку в разные домены для каждого потока Многообещающе! Куда бежать? Где смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 12:57 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
aswell, А что именно делает этот сторонний функционал? Ведь может случится что он даже распаралеленный упрется далее в какой либо общий ресурс. Интересно, почему он выполнен в виде именно статических методов? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:20 |
|
static и многопоточность
|
|||
---|---|---|---|
#18+
Lexxxxxaswell, А что именно делает этот сторонний функционал? Ведь может случится что он даже распаралеленный упрется далее в какой либо общий ресурс. Интересно, почему он выполнен в виде именно статических методов? Crowler, паук по нашему. + htmlagilitypack. Работа его полностью устраивает. А сбиваются там, судя по результатам. Какие-то счетчики, выполненные как статичные поля. В filestream и базу нигде не лезет, так что, в принципе, разделяемого ничего не должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2012, 13:35 |
|
|
start [/forum/topic.php?fid=20&fpage=183&tid=1405446]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 341ms |
total: | 500ms |
0 / 0 |