Загрузка изображения с удаленной машины в потоке - 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)
                {
 
                }
        }

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


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

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

15   голосов , оценка 4 из 5
Похожие ответы