powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / асинхронные методы
16 сообщений из 16, страница 1 из 1
асинхронные методы
    #36717911
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
собственно хотел узнать почему асинхронные методы так долго работают?
Если, к примеру, вызвать на клиенте через BackgroundWorker, то потери времени по сравнению с синхронным вызовом нет.
...
Рейтинг: 0 / 0
асинхронные методы
    #36719829
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGood,

Что делать пытаетесь?
(пример кода дайте, что ли).

Из текста вопроса ничего нельзя понять... (ИМХО).
...
Рейтинг: 0 / 0
асинхронные методы
    #36720132
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qu-qu , вот быстренько примерчик накатал) не судите строго, главное мысль)
...
Рейтинг: 0 / 0
асинхронные методы
    #36723847
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример есть... а ответов не слышу :)
...
Рейтинг: 0 / 0
асинхронные методы
    #36724105
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGood,

жесть.
проще сделай че нито для примера. а то там читать сложно.
...
Рейтинг: 0 / 0
асинхронные методы
    #36724410
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiKSergerGood,

жесть.
проще сделай че нито для примера. а то там читать сложно.

0_о а это по-вашему что? дипломная работа?
...
Рейтинг: 0 / 0
асинхронные методы
    #36727027
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так что получается все, кто пишут асинхронные запросы пренебрегают скоростью запроса?.. или я не правильно использую... объясните плиз)
...
Рейтинг: 0 / 0
асинхронные методы
    #36727471
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGoodтак что получается все, кто пишут асинхронные запросы пренебрегают скоростью запроса?.. или я не правильно использую... объясните плиз)

Напиши нормальный пост и формь код тегами - возможно и подскажут, а так что обсуждать? чтото надо скачать, а к то знает что за фашист там сидит! :)
...
Рейтинг: 0 / 0
асинхронные методы
    #36728518
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sp , нда ребята, вам видимо проще сидеть и копипастить текст для проверки из топика, чем смотреть в готовом примере... до чего дожили)))
...
Рейтинг: 0 / 0
асинхронные методы
    #36729955
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGood,

не ты ошибся чуток.
ты наверное замечтался и думаешь, что тут сидит орава людей,ничего кроме сидения тут не делающих.
так вот жизнь иная:сюда ходят на короткое время, и не каждый готов тратить времени больше , чем у него есть. если еще заметишь,то в основном тут сидят с работы.
...
Рейтинг: 0 / 0
асинхронные методы
    #36730323
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGoodсобственно хотел узнать почему асинхронные методы так долго работают?
Если, к примеру, вызвать на клиенте через BackgroundWorker, то потери времени по сравнению с синхронным вызовом нет.
для (одного) клиента - да, но надо подумать и о сервере...
если синхронный вызов достаточно продолжителен по времени, то будет блокировать подключение других клиентов к серверу, в этом случае асинхронный вызов лучше.
...
Рейтинг: 0 / 0
асинхронные методы
    #36730756
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiKSergerGood,

не ты ошибся чуток.
ты наверное замечтался и думаешь, что тут сидит орава людей,ничего кроме сидения тут не делающих.
так вот жизнь иная:сюда ходят на короткое время, и не каждый готов тратить времени больше , чем у него есть. если еще заметишь,то в основном тут сидят с работы.

Я так понимаю раз Вы здесь сидите, значит хоть один рабочий wcf-севрер создали. Значит и есть вероятно того, что асинхронные вызовы Вы использовали и сто пуд при написании своего сервер задумывались над скорость выполнения запросов. Вот у меня к Вам и был вопрос почему "...?". Видимо никто не задумывался почему и попросили у меня примерчик и в итоге нас не утроило, что там видите ли не 2 строки написано. Чего просить то тогда, чего ругаться, что я Ваше время отнимаю) Я его не отнимаю, можете не читать и не писать ответ, если кроме как я занят сказать нечего ;)
...
Рейтинг: 0 / 0
асинхронные методы
    #36730767
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LR
для (одного) клиента - да, но надо подумать и о сервере...
если синхронный вызов достаточно продолжителен по времени, то будет блокировать подключение других клиентов к серверу, в этом случае асинхронный вызов лучше.

По моему примеру разница существенная(
...
Рейтинг: 0 / 0
асинхронные методы
    #36731146
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGoodПо моему примеру разница существенная(
ну конечно существенная, ничего удивительного в этом нет - BackgroundWorker ведь делает синхронный вызов _для сервера_, а асинхронность - это лишние телодвижения (за все надо платить)

но, если сервер будет обслуживать не _одного_ клиента, а, скажем, сотню-тысячу, и вызов будет мало-мальски продолжительным (>1 сек) - ситуация кардинально изменится в пользу асинхронного вызова
...
Рейтинг: 0 / 0
асинхронные методы
    #36732464
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergerGoodПо моему примеру разница существенная(
слегка подправил пример так, чтобы воспроизвести ситуацию о которой я говорил ранее:

на серверной стороне, в исполняемом методе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private int GetDataRun(int value)
        {
            for (var i =  0 ; i <=  1000000 ; i++ )
            {
                value += i;
            }
            Thread.Sleep( 1000 ); //добавляем задержку  1  сек
            return value;
        }

на клиентской стороне делаем с десяток (в студии ограничение на количество потоков) вызовов:
при одном запуске программы - с BackgroundWorker
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            for (int i =  0 ; i <  9 ; i++) {
                var netTcpThread = new BackgroundWorker();

                netTcpThread.DoWork += NetTcpThreadDoWork;
                netTcpThread.RunWorkerCompleted += NetTcpThreadRunWorkerCompleted;

                Sw3 = new Stopwatch();
                Sw3.Start();

                netTcpThread.RunWorkerAsync();
            }
при втором запуске - с асинхронным методом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
            for (int i =  0 ; i <  9 ; i++) {
                var proxy2 = new MyServiceClient();

                Sw2 = new Stopwatch();
                Sw2.Start();

                proxy2.BeginGetData( 1 , OnEndGetData, null);
            }
если запускать не из студии и увеличить количество вызовов - разница увеличится
причина очевидна - в первом случае асинхронно сделанные (BackgroundWorker) клиентом вызовы на сервере выполняются синхронно, в одном потоке, во втором случае - каждый вызов в своем потоке.

если к этому добавить то, что в первом случае вызовы обрабатываются (вероятно) в том же потоке в котором происходит подключение клиентов, то можно представить картину как один "нерадивый" клиент вешает сервер...

поэтому, SergerGood, еще раз - надо подумать и о сервере))
...
Рейтинг: 0 / 0
асинхронные методы
    #36732683
SergerGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LR , спасибо за вразумительный ответ ;)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / асинхронные методы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]