Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я не вполне понимаю, что означает:

Цитата:
пробовал просто pictureBox1.Image.Dispose() вызывать

скажем, что я "пробовал просто ... вызывать" и у меня работает как требовалось - память освобождается.
 
Наверное нужно привести более полный фрагмент кода. А лучше задуматься зачем вызывается Dispose. Может быть вызов "не там"?
 
"Три последние строки" демонстрируют как "жестко обрезать" workspace приложению.
Это можно использовать "в лоб", а лучше прочитать вышеупомянутого Рихтера и стараться не делать так (или делать как можно реже). Понятно, что делать эти вызовы нужно из "правильного места".
 
фух...
 

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 23:07 20-11-2006
void

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt

Цитата:
pictureBox1.Image=null;  

я полагаю, что в твоем случае достаточно вместо этой строки написать pictureBox1.Image.Dispose();

Всего записей: 76 | Зарегистр. 04-06-2004 | Отправлено: 12:16 21-11-2006
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mxm1975

Цитата:
скажем, что я "пробовал просто ... вызывать" и у меня работает как требовалось - память освобождается.

Нашел причину отказа PictureBox. Оказалось, что Dispose() нельзя вызывать если объект ни на что не ссылается (ни разу не определялся либо =null)
 
В итоге получил:

Код:
private void Form1_Load(object sender, System.EventArgs e)
{
    pictureBox1.Image= new Bitmap(1,1);
}
...
...
private void listView1_Click(object sender, System.EventArgs e)
{
    ...
    if ()
    {
        pictureBox1.Image.Dispose();
        pictureBox1.Image=Image.FromFile(s);
    }
    else
    {
        pictureBox1.Image.Dispose();
        pictureBox1.Image=new Bitmap(1,1);
     }
}

Теперь прога требует памяти намного меньше.
 
Всем спасибо!

Всего записей: 10493 | Зарегистр. 05-02-2003 | Отправлено: 20:22 21-11-2006
void

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Однопиксельный битмэп создавать не обязательно.
Думаю более правильным будет следующий код:
 
if (pictureBox1.Image != null)
{
    pictureBox1.Image.Dispose();
    pictureBox1.Image = null;
}
if (ImageSelected)
    pictureBox1.Image = Image.FromFile(s);

Всего записей: 76 | Зарегистр. 04-06-2004 | Отправлено: 12:40 22-11-2006
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
void

Цитата:
Однопиксельный битмэп создавать не обязательно.
Думаю более правильным будет следующий код:

тоже неплохо

Всего записей: 10493 | Зарегистр. 05-02-2003 | Отправлено: 19:16 22-11-2006
VIIwmss34

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, помогите пожалуйста, нужна программа(очень срочно):
 
 
Назначение и область применения программы:  
Разработка программы для шифрования произвольного текста. Методы криптографии.
Состав выполняемых функций:  
Шифрование и дешифрование произвольного текста.  
Примечание:
Метод шифрования основан на использовании фиксированной перестановки чисел: при шифровании к каждой группе из к символов применяется фиксированная перестановка, заданная последовательностью натуральных чисел от 1 до к (если в группе меньше к символов, недостающие символы заменяются пробелами). Например, если к=4 и перестановка есть {3,4,2,1}, то шифром группы символов abсd будет cdba.
Организация входных и выходных данных:  
Исходные подлежащие шифрованию и расшифрованные данные - текстовые файлы, перестановка и зашифрованные данные - двоичные файлы.
Состав технических и программных средств:  
Операционная система MS DOS или PC DOS; система программирования MSC или Turbo С. Дисплейный адаптер EGA/VGA, видеорежим 640x480, 16 цветов.
 

Всего записей: 2 | Зарегистр. 23-11-2006 | Отправлено: 01:46 23-11-2006
DeMoN_iDA



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите пожалуйста с исправлением ошибки в файле GLOBAL.ASA... Сам Я не силен в SQL Server 2000 и ASP .NET...
 
Есть Win2k3 Serve + AD + SQL Server 2000 + ISS. Есть прога написаная на ASP .NET, которая работала с базами на локальном компе под управлением MSDE 2000. Для многопользовательской работы прога и базы были перемещены на выше указаный сервер, но корректно не работало, т.к. выдавало что ошибку в строке 1 файла GLOBAL.ASA
Мне помогли устранить проблему и все работало до того момента, пока пользователь не обновил приложение и соответственно затер GLOBAL.ASA. Пользователь перед обновлением копий не сделал и посмотреть правильный файл GLOABAL.ASA теперь не представляется возможным...
Вот содержимое файла GLOBAL.ASA:

Код:
 
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters" >  
</OBJECT>
 <object runat=Server scope=session id=con progid = "ADODB.Connection"></object>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
 'con.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\webProjects\CCM\local\dbccm3.mdb;Jet OLEDB:Database Password=sa;Persist Security Info=False"
 'con.Open  
Con.Provider = "sqloledb"
'Con.Properties("Data Source").Value = "SANDY\D"
Con.Properties("Initial Catalog").Value = "CCM"
Con.Open "", "sa", "sa"  
End sub  
Sub Session_OnEnd
  con.close
End Sub
</SCRIPT>
 

 
Может кто-то подскажет что нужно исправить чтобы работало с SQL Server 2000 ?
Заранее благодарен за помощь...

Всего записей: 327 | Зарегистр. 10-08-2003 | Отправлено: 02:56 25-11-2006 | Исправлено: DeMoN_iDA, 02:59 25-11-2006
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
con.ConnectionString="Data Source='SANDY,1433';Network Library='DBMSSOCN';Initial Catalog='CCM';User ID='sa';Password='sa';"

 
так?

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 06:43 25-11-2006 | Исправлено: mxm1975, 06:43 25-11-2006
DeMoN_iDA



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mxm1975
 
Спасибо за уделенное внимание...
 
Ошибку выдает на первой строке, типа нет такого ProgID MSWC.Counters, код ошибки 0135 или 0147 (точно не помню)... Дело в том, что коррективы вносились только в эти строки

Код:
 
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters" >  
</OBJECT>  
 <object runat=Server scope=session id=con progid = "ADODB.Connection"></object>
. . . . .
 

 
Пытаюсь найти ответ в литературе по ASP .Net - пока нет результата...

Всего записей: 327 | Зарегистр. 10-08-2003 | Отправлено: 00:41 27-11-2006
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тогда может быть так?
 

Код:
 
 <OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="nce.mswc.Counters" ></OBJECT>
 

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 17:27 27-11-2006 | Исправлено: mxm1975, 17:27 27-11-2006
Collapse_Troll

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте! С наступающим СНГ!
 
Прошу хелпа.
 
Суть дела: получаю версии и время записи NET-овских DLL-ок из дирректории (к примеру "C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages")
 
На форме лежит listView (названный mylistView). Вот так создаю в нем 3 колонки (название файла, версия сборки, дата записи  
 
файла):

Код:
 
// Здесь создаю колонки в listView
        private void CreateColumns()
        {
            mylistView.View = View.Details;  
            mylistView.Columns.Add("File name", 150, HorizontalAlignment.Center);      // колонка имени файла
            mylistView.Columns.Add("File version", 150, HorizontalAlignment.Center);   // версия
            mylistView.Columns.Add("Was written in", 145, HorizontalAlignment.Center); // время создания
        }
 

 
Щелкаю на кнопе и в функции GetFileVersions(string tempPath) получаю версии DLL-ок из переданной директории tempPath:
 

Код:
 
// функция получения версий файлов
        private int GetFileVersions(string tempPath)
        {
            mylistView.Clear();         // очищаем listView
            CreateColumns();            // и пересоздаем колонки    
 
            string myPath = tempPath;   // название дирректории передается в функцию (к примеру "C:\Test")
 
            // обрабатываем случай неверного названия дирректории
            if (!Directory.Exists(@myPath))
            {
                MessageBox.Show("Enter correct directory name", "Directory loading error");
                return 1;
            }
 
 
 
            // ВОТ СОБСТВЕННО ПОЛУЧЕНИЕ ВЕРСИЙ и ВРЕМЕНИ СОЗДАНИЯ DLL-ок (только NET - овских)
 
            // получаем всю инфу о файлах
            FileInfo[] fi = new DirectoryInfo(@myPath).GetFiles("*.dll", SearchOption.TopDirectoryOnly);
            int counter = 0;              // счетчик строчек  
 
            foreach (FileInfo f in fi)    // теперь выводим инфу о файлах в listView
            {
                try
                {
                    mylistView.Items.Add(f.Name.ToString());    // имя в первую колонку
                    // и во вторую и третью колонки добавляем версию и время записи
                    mylistView.Items[counter].SubItems.Add((Assembly.LoadFile(f.FullName).GetName().Version.ToString()));
                    mylistView.Items[counter].SubItems.Add(f.LastWriteTime.ToString());
                    counter++;
 
                }
                catch (Exception ex)
                {
                    mylistView.Items.Add("bad assembly format");
                }
            }
 
 
            return 0;
        }
 

 
Дело в том, что при большом количестве файлов в дирректории приходится долго ждать. Программа сначала собирает _всю_ инфу о файлах, а потом уже выводит. Как сделать чтобы она работала пошустрее, то есть сделать это

Код:
 
            FileInfo[] fi = new DirectoryInfo(@myPath).GetFiles("*.dll", SearchOption.TopDirectoryOnly);
 

одновременно с выводом в listView?
 
Для наглядности приаттачил проект, VS2005.
http://slil.ru/23725990
 
 

Всего записей: 791 | Зарегистр. 05-08-2006 | Отправлено: 19:46 11-01-2007 | Исправлено: Collapse_Troll, 20:18 11-01-2007
djdtyfhu



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос: сильно ли различаются реализации C# от MS и от Borland?

Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 04:54 25-01-2007
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
djdtyfhu
Отличие только в расширенных компонентах помоему (все что связанно с Framework-ом у них одинаковое), но у борланда есть возможность сохранять проект в MS VS. Но лучше все таки писать в VS, у них более легковеснй продукт получился, а с дополнительными компонентами типа DevExpress то вообще просто сказка и компоненты большую часть сейчас на шарпе по VS заточены. Я лично как перешел на Visual Studio 2005 с Borland Studio 2005 больше не хочу на него возвращться (раньше программировал на Delphi и ни когда не думал что Шарп под студией майкрософта мне понравится больше

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 12:31 26-01-2007
djdtyfhu



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexandrVS
 

Цитата:
с дополнительными компонентами типа DevExpress то вообще просто сказка  

 
А разве они делают компоненты и для .NET?

Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:10 26-01-2007
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
djdtyfhu
Проснулся, сто лет как делают И для Win-приложений, и для Web-приложений.
 
Добавлено:
Мой совет - для .NET/C# выбирай Visual Studio 2005.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 21:47 26-01-2007
djdtyfhu



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH

Цитата:
Мой совет - для .NET/C# выбирай Visual Studio 2005.

 
Я в раздумьях о будущем Delphi ищу куда бы преткнуться чтобы лет 10-15 (как было как раз 10 лет назад) не метаться по средам программирования. Пока смотрю на C#, но пугает все же наследство его от С и С++ с их навороченным синтаксисом и множеством сразу не очевидных подводных камней...

Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 10:41 27-01-2007 | Исправлено: djdtyfhu, 10:42 27-01-2007
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
djdtyfhu
У меня у самого уже порядка 8-лет стаж на Borland C++Builder, и вот уже 3 года как успешно сижу на MS VisualStudio 2003/2005.

Цитата:
Пока смотрю на C#, но пугает все же наследство его от С и С++ с их навороченным синтаксисом и множеством сразу не очевидных подводных камней...
Нет в C# ничего такого особо навороченного по синтаксису в сравнении с Delphi. Среда .NET накладывает тут свой отпечаток на все и многое получается значительно проще чем в C/C++.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 12:54 27-01-2007
djdtyfhu



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH
 
А как с быстродействием программ под платформу .NET? JIT компиляция сильно тормозит реальные проекты?

Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:22 27-01-2007
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
djdtyfhu
Нет, нормально все. Я в основном пишу большие БД-приложения под ASP.NET, так что тут помимо .NET значительно большее значение в быстродействии имеет SQL Server, да сетевые каналы. А .NET позваляет больше концентрироваться на логике приложения, а не на каких-то системных заморочках.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 16:49 27-01-2007
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А как с быстродействием программ под платформу .NET? JIT компиляция сильно тормозит реальные проекты?

 
djdtyfhu
Конечно по скорости Net немного тормозит, по на новых компах это не заметно и не забывай что это уже ориентированно на будущие технологии и на новые компьютеры единственное в играх проигрышь пока заметен, Managed DirectX 9 почти на 30% проигрывает по скорости, но скоро ты и этого думаю не заметишь
 
 
EZH
Для баз данных Шарп помоему просто находка

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 08:59 29-01-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru