Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2009, 22:52   #1
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию ПРограмма подвисате при загрузке большого файла..

Добрый день! Мое приложение при загрузке в ТЕКСТ БОКС большого файла (96 мб) показывает как будто подвисшее! Как мне сделать что бы такого не было и программа просто оставалась как есть...
cowboy вне форума Ответить с цитированием
Старый 27.09.2009, 23:07   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Выделить для подгрузки отдельный поток.

http://www.rsdn.ru/article/dotnet/CSThreading1.xml
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 27.09.2009, 23:45   #3
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию

Почему то я пытаюсь вот это
Код:
  Stream mystream = null;
            openFileDialog1.ShowDialog();
            string filename = openFileDialog1.FileName;
            MessageBox.Show(filename);
            mystream = File.Open(filename, FileMode.Open, FileAccess.Read);
            if (mystream != null)
            {
                StreamReader reader = new StreamReader(mystream);
                textBox1.Text = reader.ReadLine();// reader.ReadToEnd();
                mystream.Close();
            }
запихнуть в
Код:
 static void LoadFile()
        {
           
        }
Это ведь вызов процедуры ?!
Он у меня ругатется мол нельзя опендиалоги тут открытвать? Где можно прочить про создание процедур и функций в C# ..Шо то я ничего не нашел
cowboy вне форума Ответить с цитированием
Старый 27.09.2009, 23:47   #4
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию

Это я делаю для того что бы своб процедуру потом в отдельном потоке запустить
cowboy вне форума Ответить с цитированием
Старый 28.09.2009, 12:28   #5
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Метод не должен быть статическим
Hollander вне форума Ответить с цитированием
Старый 28.09.2009, 15:05   #6
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию

Спасибо..Но тем не менее когда я пытаюсь сделать загрузку файла в отдельный поток

Код:
       private void LoadFile()
        {
            Stream mystream = null;
            openFileDialog1.ShowDialog();
            string filename = openFileDialog1.FileName;
            MessageBox.Show(filename);
            mystream = File.Open(filename, FileMode.Open, FileAccess.Read);
            if (mystream != null)
            {
                StreamReader reader = new StreamReader(mystream);
                textBox1.Text = reader.ReadToEnd();// reader.ReadToEnd();
                mystream.Close();
            }  
        }


        private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(LoadFile);
            t.Start();  
        }
Он у меня компилируется но при выполнении
Код:
 openFileDialog1.ShowDialog();
Ругается мол фред был неуправляем


Так же пробую передать переменную в потоке методу-тоже не получается


public void Privet(string slovo)
{

MessageBox.Show(slovo);

}


private void button1_Click(object sender, EventArgs e)
{
string name= "ghbdtn!";
Thread t = new Thread(Privet(name));
t.Start();

}
Изображения
Тип файла: gif fred.GIF (16.8 Кб, 147 просмотров)

Последний раз редактировалось cowboy; 28.09.2009 в 15:42.
cowboy вне форума Ответить с цитированием
Старый 29.09.2009, 18:04   #7
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Все потому что ты работаешь здесь с GUI(вызывая MessageBox.Show). Для чтения файлов твой код подойдет. Пример как работать с GUI: http://www.java2s.com/Code/CSharp/Th...readandGUI.htm
Hollander вне форума Ответить с цитированием
Старый 01.10.2009, 16:07   #8
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию

Спасибо..Но вот загвостка теперь в другом..Задача та же -запустить запись файла в отдельном потоке..Пишу вот что
Код:
delegate void MyDel(object text);
        static public void LoadFile(object path)
        {
          
 
            {
                FileStream mystream = File.Open((string)path, FileMode.Open, FileAccess.Read);
                StreamReader reader = new StreamReader(mystream);
                String Line;
                while ((Line = reader.ReadLine()) != null)
                {
                   // MessageBox.Show((string)Line);
                    textBox1.Text += Line + "\r\n";
                }
                mystream.Close();
            }
        }
 
    
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            MyDel MyFun = new MyDel(LoadFile);
            openFileDialog1.ShowDialog();
            String filename = openFileDialog1.FileName;
            if (filename.Length > 10)
 
            {
                Thread t = new Thread(new ParameterizedThreadStart(MyFun));
                t.Start(filename);
               
            }
 
           
        }
Но компилятор ругается на вывод в ТЕКСТ БОКС..В чем может быть проблема? Может в качестве параметра передавать текстбокс7
cowboy вне форума Ответить с цитированием
Старый 01.10.2009, 16:16   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

а у textbox там ограничение на 32 али 64кб нет? попробуйте еще свойство doublebuffered:= true
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.10.2009, 16:39   #10
cowboy
Форумчанин
 
Регистрация: 12.03.2009
Сообщений: 109
По умолчанию

А где посмотреть про 32 или 64 килобита?
Свойства такого у меня нет..Может потомуч то у меня ЭКСПРЕСС?
cowboy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа при загрузке Windows сворачивался в трей? nurlan Общие вопросы Delphi 2 11.04.2009 11:16
Проблема с записью большого файла Rembo Свободное общение 17 17.06.2008 12:47
при открытии большого файла должно появляться окно с ProgressBar и показывать ход открытия Михаил Юрьевич Общие вопросы Delphi 3 28.05.2008 23:33
Ошибка компонента TADOQuery при загрузке запроса из файла в Delphi 2006 WhiteKoS Помощь студентам 2 16.02.2008 15:07
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 13:55