Net 9.0 - gcalloverylargeObjects {"Исключение типа 'System.outofmemoryException' было брошено."}C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Net 9.0 - gcalloverylargeObjects {"Исключение типа 'System.outofmemoryException' было брошено."}

Сообщение Anonymous »

Иметь файл appconfig: < /p>









< /code>
также раздел, добавленный в machine.config в следующей папке: C: \ Windows \ Microsoft.net \ Framework64 \ v4.0.30319 \ config < /p>
Иметь пользовательский класс для коллекции, превышающего 2 ГБ с кусочкой решением < /p>
public class BulkCollection : IEnumerable, ICloneable
{
private const int ChunkSize = 1000000000;
private readonly T[][] _chunks;
public long Count { get; }
public BulkCollection(long count)
{
Count = count;
long numberOfChunks = count / ChunkSize;
long lastChunkSize = count % ChunkSize;
_chunks = new T[numberOfChunks + (lastChunkSize > 0 ? 1 :0)][];
for (long i = 0; i < numberOfChunks; i++)
{
_chunks = new T[ChunkSize];
}
if (lastChunkSize > 0)
{
_chunks[^1] = new T[lastChunkSize];
}
}
public BulkCollection(BulkCollection bulkcollection)
{

}
public T this[long index]
{
get
{
if (index < 0 || index >= Count)
{
throw new IndexOutOfRangeException();
}
long chunkIndex = index/ChunkSize;
int itemIndexInChunk = (int)(index % ChunkSize);
return _chunks[chunkIndex][itemIndexInChunk];
}
set
{
if (index < 0 || index >= Count)
{
throw new IndexOutOfRangeException();
}
long chunkIndex = index / ChunkSize;
int itemIndexInChunk = (int)(index % ChunkSize);
_chunks[chunkIndex][itemIndexInChunk] = value;
}
}

public IEnumerator GetEnumerator()
{
return new BulkEnumerator(this);
}

IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}

public object Clone()
{
return this.MemberwiseClone();
}
}
< /code>
in для цикла: < /p>

for (long i = 0; i < numberOfChunks; i++)
{
_chunks = new T[ChunkSize];
}
< /code>
< /blockquote>
Извлеченное исключение < /p>



ex {"Exception of type 'System.OutOfMemoryException' was thrown."} System.OutOfMemoryException
< /code>
< /li>
< /ul>
< /blockquote>
Нужна помощь, чтобы решить эту проблему, потому что конфигурационные предварительные устройства не работают, и все подобные вопросы, просмотренные мной без какого -либо побуждения. Спасибо, вы < /p>





Подробнее здесь: https://stackoverflow.com/questions/797 ... oryexcepti
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»