1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
|
|
1 | |
Как понять, когда нужен только односторонний запрос? WCF25.02.2018, 12:56. Показов 1632. Ответов 6
Метки нет (Все метки)
Как понять, когда контракту нужно присвоить IsOneWay = true, где это может быть полезно? так же встречаюсь с тем, что прога выдает ошибку о взаимоблокируемом процессе, которая, как я понял, и решается односторонним запросом. почему одни контракты не жалуются на двусторонний запрос, другие - жалуются?
0
|
25.02.2018, 12:56 | |
Ответы с готовыми решениями:
6
Как понять, когда писать через точку (например, TextBlock.ToolTip), а когда не через точку? Как узнать запрос, который посылает ВКонтакте, когда ставят лайк, отправляют запрос дружбы 1c8 когда лучше использовать запрос, а когда выбор Как построить SQL-запрос, чтобы он выводил записи только за сегодня или только за вчерашний день? |
25.02.2018, 13:29 | 2 |
Сообщение было отмечено Kamikoto_Sudzuk как решение
Решение
Это зависит от логики вашего сервиса. Стандартное применение-когда клиента не интересует результат вызова метода сервиса (вызвал и забыл), чтобы не блокировать поток вызова. Также применяется в обратных вызовах, чтобы избежать взаимоблокировки (этого можно избежать и установкой поточного режима службы в многопоточный/реентерабельный).
1
|
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
|
|
25.02.2018, 13:52 [ТС] | 3 |
то есть вызвавший все равно ждет, пока закончится исполнение вызванного метода в обоих случаях?
0
|
25.02.2018, 14:14 | 4 |
В случае с односторонним вызовом-нет, не ждет. Исполняющая среда ставит вызов в очередь (как правило, это происходит очень быстро), после чего управление возвращается вызывающему коду.
1
|
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
|
|
25.02.2018, 14:33 [ТС] | 5 |
insite2012, и что тогда делать, если я хочу, чтоб сервер дождался окончания callback метода, но мне все время нужно было делать контракт односторонним?
Добавлено через 1 минуту insite2012, а, точно, ответ выше Добавлено через 24 секунды спасибо. Как всегда, вы - один в поле воин) Добавлено через 1 минуту insite2012, и все же, хотелось бы простым языком уточнить: то есть, чтобы избежать взаимоблокировки, мне нужно вызвать один из методов в отдельном потоке?
0
|
25.02.2018, 14:45 | 6 |
Нет.
1. Сделать метод обратного вызова односторонним. 2. Настроить реализацию контракта службы как мультипоточная/реентерабельная (свойство ConcurrencyMode атрибута ServiceBehavior установить в Multiple/Reenterant ).
1
|
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
|
|
25.02.2018, 14:47 [ТС] | 7 |
insite2012, аа ясно. спасибо
0
|
25.02.2018, 14:47 | |
25.02.2018, 14:47 | |
Помогаю со студенческими работами здесь
7
Как быть, когда блок finally нужен и как применить com.google.common.io.Closer не могу понять как реализовать запрос Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать? Считывание файла только когда он изменился - как организовать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |