У меня есть функция, которая заполняет представление сетки данных, и эта функция использует подкачку
page size = 30
public static void FillDataGrid(DataGridView dataGrid, int intPageSize, int intPageIndex, out int intTotal
,string title)
{
dataGrid.Rows.Clear();
try
{
var dt = GetData(intPageSize, intPageIndex, out intTotal, title); //dt type DataTable
var dicrectory = Directory.GetCurrentDirectory();
for (var i = 0; i < dt.Rows.Count; i++)
{
var uri = new Uri(dt.Rows[i]["URL"].ToString());
var host = uri.Host.Replace("www.", "");
host = host.Replace(".com", "");
var iconFullUrl = dicrectory + @"\Icons\" +
dt.Rows[i]["IconURL"].ToString();
object[] row = new object[10];
row[0] = "False";
row[1] = Image.FromFile(iconFullUrl);
row[2] = dt.Rows[i]["Title"].ToString();
row[3] = host;
row[4] = Convert.ToDateTime(dt.Rows[i]["Date"].ToString()).ToShortDateString();
row[5] = "";
row[6] = dt.Rows[i]["URL"].ToString();
row[7] = "";
row[8] = "";
row[9] = dt.Rows[i]["Id"].ToString();
dataGrid.Rows.Add(row);
}
}
catch (Exception ex)
{
throw ex;
}
}
в этом разделе кода возникает ошибка
row[1] = Image.FromFile(iconFullUrl);
Добавление комментария в качестве ответа:
Согласно MSDN ошибка OutOfMemory может быть вызвана тем, что файл не имеет допустимого формата изображения или потому что GDI+ не поддерживает формат пикселя файла.
Кроме того, пока изображение не расположено, файл будет помечен как inuse