Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
1

OutOfMemory Exception, как избавиться

18.03.2012, 21:46. Просмотров 1140. Ответов 3
Метки нет (Все метки)

Собственно столкнулся с проблемой в сабже.
Как то можно обойти? Работаю в 40-1000 потоков и из-за этого програма часто вылетает.

И еще, насколько я понял, Win7 ограничивает кол-во полу-открытых соединений, как этого можно избежать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2012, 21:46
Ответы с готовыми решениями:

При экспорте данных из dataGridView в файл выдается System.OutOfMemory.Exception
Есть dataGridView с данными окло 1 млн строк, нужно сохранить данные в файл. ...

Получить часть файла. OutOfMemory
Есть определенный файл. Нужно получить байты данного файла указав определенный...

OutOfMemory при сравнении MD5 нескольких больших файлов
Доброго времени суток. Пилю программу файловой односторонней синхронизации...

Как реализовать Exception?
У меня есть программа на тему Наследование, в котором реализуются такие классы...

Как перехватить tcpSocket AsyncConnect exception
Добрый день. Есть такой код: private readonly ManualResetEvent...

3
m0nax
1203 / 908 / 109
Регистрация: 12.01.2010
Сообщений: 1,891
Завершенные тесты: 3
18.03.2012, 22:00 2
используй ThreadPool вместо создания потоков через new
1
WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
18.03.2012, 22:31  [ТС] 3
Как я понял:
C#
1
2
ThreadPool.SetMaxThreads(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown1.Value));
                    ThreadPool.QueueUserWorkItem(Log136());
Видимо,что-то я не понял.

Код метода Log136:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void Log136()
        {
 
            while (accountCount != byLogin.Length)
            {
                string line;
                string login = string.Empty;
                string password = string.Empty;
                lock (_lock)
                {
                    if (accountCount > byLogin.Length) break;
                    line = byLogin[accountCount];
 
                    accountCount++;
                    string[] ar = line.Split(';');
                    login = ar[0];
                    password = ar[1];
                    login = login.ToLower();
 
                }
                st136(login, password);
 
            }
Добавлено через 6 минут
Сделал так:

C#
1
2
3
 ThreadPool.SetMaxThreads(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown1.Value));
                    ThreadPool.SetMinThreads(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown1.Value));
                    ThreadPool.QueueUserWorkItem(new WaitCallback(Log));
И вообще работает 1 поток
0
m0nax
1203 / 908 / 109
Регистрация: 12.01.2010
Сообщений: 1,891
Завершенные тесты: 3
18.03.2012, 23:45 4
Код
 ThreadPool.QueueUserWorkItem(new WaitCallback(Log));
И вообще работает 1 поток
а сколько должно быть? запустил же один, он и работает один
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2012, 23:45

Как избавиться от предупреждений об отсутствии издателя?
Как избавиться от таких штук? Я так понимаю что нужна якобы цифровая...

Как словить exception в dll подключенной через Assembly
Здраствуйте форумчане. Возник вопрос Есть скомпилированная dll написанная на...

Как избавиться от доступа только для чтения?
Добрый день, в общем, проблема такая: Подключил библиотеку System.Numerics...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru