Загрузка изображения с удаленной машины в потоке - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Я загружаю с удаленного компьютера нужное мне изображение в потоке и временами программа подвисает на этапе загрузки изображения. Подскажите пожалуйста в чем моя ошибка:
Листинг программы
  1. private void GridClickNod()
  2. {
  3. try
  4. {
  5. var thread =
  6. new Thread(() =>
  7. NewLoad2(GlobalStaticValues.SelectedNameTable,
  8. _ctn.FromDataBase(grid.Rows[grid.CurrentRow.Index].Cells[0].Value.ToString()), 0));
  9. thread.Start();
  10. }
  11. catch (Exception)
  12. {
  13. }
  14. }
  15. private Image _image2;
  16. private delegate void NLoad2(string nameTable, string rowName, int numImg);
  17. public void NewLoad2(string nameTable, string rowName, int numImg)
  18. {
  19. if (picture.InvokeRequired)
  20. {
  21. NLoad2 d = NewLoad2;
  22. Invoke(d, new object[] { nameTable, rowName, numImg });
  23. }
  24. else
  25. {
  26. try
  27. {
  28. if (_image2 != null)
  29. {
  30. _image2.Dispose();
  31. }
  32. grid.Cursor = Cursors.WaitCursor;
  33. tree.Cursor = Cursors.WaitCursor;
  34. var dir = Directory.GetFiles(GlobalStaticValues.ServName + nameTable + @"\" + rowName + @"\img\");
  35. _image2 = new Bitmap(dir[numImg]);
  36. if (picture != null)
  37. {
  38. picture.Image = _image2;
  39. }
  40. grid.Cursor = Cursors.Default;
  41. tree.Cursor = Cursors.Default;
  42. }
  43. catch (Exception)
  44. {
  45. }
  46. }
  47. }

Решение задачи: «Загрузка изображения с удаленной машины в потоке»

textual
Листинг программы
  1. public void NewLoad2(string nameTable, string rowName, int numImg)
  2.         {
  3.                 try
  4.                 {
  5.                     if (_image2 != null)
  6.                     {
  7.                         _image2.Dispose();
  8.                     }
  9.  
  10.                     grid.Cursor = Cursors.WaitCursor;
  11.  
  12.                     tree.Cursor = Cursors.WaitCursor;
  13.  
  14.                     var dir = Directory.GetFiles(GlobalStaticValues.ServName + nameTable + @"\" + rowName + @"\img\");
  15.  
  16.                     _image2 = new Bitmap(dir[numImg]);
  17.  
  18.                     if (picture != null)
  19.                     {
  20.             if (picture.InvokeRequired)
  21.             {
  22.                 picture.Invoke(new Action( () => picture.Image = _image2));
  23.             }
  24.                     }
  25.  
  26.                     grid.Cursor = Cursors.Default;
  27.  
  28.                     tree.Cursor = Cursors.Default;
  29.                 }
  30.                 catch (Exception)
  31.                 {
  32.  
  33.                 }
  34.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы