Загрузка изображения с удаленной машины в потоке - C#
Формулировка задачи:
Доброго времени суток! Я загружаю с удаленного компьютера нужное мне изображение в потоке и временами программа подвисает на этапе загрузки изображения. Подскажите пожалуйста в чем моя ошибка:
private void GridClickNod() { try { var thread = new Thread(() => NewLoad2(GlobalStaticValues.SelectedNameTable, _ctn.FromDataBase(grid.Rows[grid.CurrentRow.Index].Cells[0].Value.ToString()), 0)); thread.Start(); } catch (Exception) { } } private Image _image2; private delegate void NLoad2(string nameTable, string rowName, int numImg); public void NewLoad2(string nameTable, string rowName, int numImg) { if (picture.InvokeRequired) { NLoad2 d = NewLoad2; Invoke(d, new object[] { nameTable, rowName, numImg }); } else { try { if (_image2 != null) { _image2.Dispose(); } grid.Cursor = Cursors.WaitCursor; tree.Cursor = Cursors.WaitCursor; var dir = Directory.GetFiles(GlobalStaticValues.ServName + nameTable + @"\" + rowName + @"\img\"); _image2 = new Bitmap(dir[numImg]); if (picture != null) { picture.Image = _image2; } grid.Cursor = Cursors.Default; tree.Cursor = Cursors.Default; } catch (Exception) { } } }
Решение задачи: «Загрузка изображения с удаленной машины в потоке»
textual
Листинг программы
public void NewLoad2(string nameTable, string rowName, int numImg) { try { if (_image2 != null) { _image2.Dispose(); } grid.Cursor = Cursors.WaitCursor; tree.Cursor = Cursors.WaitCursor; var dir = Directory.GetFiles(GlobalStaticValues.ServName + nameTable + @"\" + rowName + @"\img\"); _image2 = new Bitmap(dir[numImg]); if (picture != null) { if (picture.InvokeRequired) { picture.Invoke(new Action( () => picture.Image = _image2)); } } grid.Cursor = Cursors.Default; tree.Cursor = Cursors.Default; } catch (Exception) { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д