powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / параллельные запросы HttpWebRequest
17 сообщений из 67, страница 3 из 3
параллельные запросы HttpWebRequest
    #40025781
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, да. что не так делаю?
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025782
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
Shocker.Pro, да. что не так делаю?
ты не ждешь, когда завершится метод АА

напиши хотя бы так
Код: c#
1.
2.
3.
4.
5.
6.
        static async void Main(string[] args)
        {
            await AA();
            Console.WriteLine("Hello World!");
        }
        static async Task AA()
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025783
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Код: vbnet
1.
Ошибка	CS5001	Программа не содержит статического метода "Main", подходящего для точки входа
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025784
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok,

Я тот же код перенес на гуй:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
private async void button1_Click(object sender, EventArgs e)
{
    ServicePointManager.ServerCertificateValidationCallback = (_1, _2, _3, _4) => true;
    ServicePointManager.DefaultConnectionLimit = 5;

    Stopwatch sw = new Stopwatch();

    // тут параллелим на 100 потоков
    sw.Reset();
    sw.Start();
    await Task.WhenAll(Enumerable.Repeat(0, 100).Select(__ =>
        Task.Run(() => {
            // в каждом потоке 1 синхронный запрос
            var request = HttpWebRequest.Create("https://sql.ru");
            using var response = request.GetResponse();
            using var stream = response.GetResponseStream();
            using StreamReader reader = new StreamReader(stream);
            _ = reader.ReadToEnd();
        }))).ConfigureAwait(true);
    sw.Stop();
    // Console.WriteLine($"Сто потоков: {sw.ElapsedMilliseconds}");
    label1.Text = $"Сто потоков: {sw.ElapsedMilliseconds}";

    // тут все просто асинхронно
    sw.Reset();
    sw.Start();
    await Task.WhenAll(Enumerable.Repeat(0, 100).Select(async __ => {
        var request = HttpWebRequest.Create("https://sql.ru");
        using var response = await request.GetResponseAsync().ConfigureAwait(false);
        using var stream = response.GetResponseStream();
        using StreamReader reader = new StreamReader(stream);
        _ = await reader.ReadToEndAsync().ConfigureAwait(false);
    })).ConfigureAwait(true);
    sw.Stop();
    // Console.WriteLine($"Сто запросов асинхронно: {sw.ElapsedMilliseconds}");
    label2.Text = $"Сто запросов асинхронно: {sw.ElapsedMilliseconds}";
}



И у меня разница вообще в 60 раз получилась:

...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025785
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok

Код: c#
1.
2.
3.
4.
5.
        static void Main(string[] args)
        {
            AA();
            Console.WriteLine("Hello World!");
        }




Код: c#
1.
2.
3.
4.
5.
        static async Task Main(string[] args)
        {
            await AA();
            Console.WriteLine("Hello World!");
        }



qlewerok
Код: c#
1.
static async void AA()


Код: c#
1.
static async Task AA()
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025787
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthatразница вообще в 60 раз получиласьа теперь добавьте
Код: c#
1.
ThreadPool.SetMinThreads(100, 100);

студия очень скупая на потоки, если её убедительно не попросить
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025788
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после многих запусков вердикт: коды работают одинаково по времени у меня. ServicePointManager.DefaultConnectionLimit действительно ни на что не влияет в этом языке
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025790
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
в этом языке
причем тут язык?
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025792
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
кто-то может писать на VB.NET при практически полном отсутствии ...

Скажу, что это не мешает писать на VB.NET и читать обычную документацию для.NET / экезмплы на C#.
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025793
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
причем тут язык?
в vb.net у меня прямая пропорциональность от этого параметра. увеличу в 3 раза максимально количество соединений - примерно в 3 раза быстрее выполнится код. тут как ни тыкал, разницы нет
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025796
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
в vb.net .... этого параметра
Это не параметр языка и к языку отношения не имеет.
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025797
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD
Скажу, что это не мешает писать на VB.NET и читать обычную документацию для.NET / экезмплы на C#.
Это означает, что ты знаешь синтаксис C#. А ТС, увидев пример на C#, сразу запаниковал
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025798
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
студия очень скупая на потоки
то же самое. Причем тут студия? Код (хоть на C# хоть на VB.NET) можно писать в блокноте и на использование ThreadPool это никак не повлияет.

Вот к чему приводит отсутствие литературы
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025801
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
увеличу в 3 раза максимально количество соединений - примерно в 3 раза быстрее выполнится код.

Это, наверняка потому что у тебя код CPU-consuming, т.е. он большую часть времени занят не отправкой HTTP-запроса и получением ответа, а обработкой самого этого ответа.
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025807
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
Код: c#
1.
ThreadPool.SetMinThreads(100, 100);


С такой настройкой оно у меня вообще зависло.
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025918
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу ошибаться, но в XP было ограничение на количество одновременных подключений по локальной сети больше 10 штук.
это касается не только соединений по самбе, но и других. Этого ограничения нет в серверных ОС.
вроде как это меняли в следующих виндах.
то есть, если одновременно больше 10 подключений не подключаются, возможно стоит глянуть в этом направлении, особенно если винда старая
...
Рейтинг: 0 / 0
параллельные запросы HttpWebRequest
    #40025921
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, windows 7x64 SP1 максимальная
...
Рейтинг: 0 / 0
17 сообщений из 67, страница 3 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / параллельные запросы HttpWebRequest
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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