Автор вопроса: Neco | Web-сайт:neco.pisem.net | ICQ: 247906854
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством:
Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая.
Т.е. он типа может быстрее, но специально у меня на нервах играет?! 8(
Можно ли как-нибудь настроить всю среду на более быструю работу?
Вопрос №2:
В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами.
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством:
Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая.
Какая версия VS .NET?
Какой компьютер?
Я с такими прблемами никогда не сталкивался.
Согласен, редактор не особо шустрый (по сравнению с VB6), но все практически в допустимых пределах.
Вопрос №2:
В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами.
Переопределяешь процедуру WndProc и флаг в руки.
Только зачем на .NET так извращаться?
Имею VS.NET 2003 на Cel-1.7GHz. Периодически безбожно тормозит, особенно после нескольких компиляций хоть сколь-нибудь большого проекта, что лишний раз доказывает, что "победители Java" не умеют бороться даже с элементарными memory leaks
Версия, выдранная из эбаута:
Microsoft Visual Basic .NET 69586-335-0000007-18917
А наскока помню при установке пелось про Enterprise...
Особенно хорошо тормоза видны, если сделать следующее (не знаю обязательны ли все пункты, но много экпериментировать счас влом - не хочу потерять интерес к кодингу):
Размещаем элементы MainMenu и ContextMenu.
Вписываем и туда и туда чего-нить.
Потом при выделении контекстного, прежде чем можно будет начать редактировать менюшку происходит первый заметный подвисон. Второй наступает при снятии выделения с этого контекстного меню (типа закончил редактировать) - этот вообще конретный, секунды на три.
Да и вообще есть куча мест, где более-менее заметно подвисает - просто это наиболее меня достало.
Комп, конечно, не первой свежести:
Пень - 2400B
Память - 256 (частоту уже не помню)
Видуха - 64 четвёрка.
> Переопределяешь процедуру WndProc и флаг в руки.
Это разве не называется сабклассингом?
В общем, если это подразумевает GetWindowLong и SetWindowLong, то я думаю, что здесь особо от шестого отличий нет и наверное я смогу это сделать.
Но вот в дельфях я видел строчку по смыслу означающую "сообщения под номером 533 (uMsg), преобразовывать в событие MyEvent" и потом с этим сообщением можно было работать как и с любым другим событием (Load, Activate, MouseUp...). Писалось где-то в заголовке формы. На мой взгляд очень удобная фенька. Несколько позже, копаясь в каких-то сишных сырцах под MFC, я увидел что-то типа этого, но тогда мне было не до этого. Счас мне собс-на на сях-то и не надо - VB.Net осваиваю.
Если очень надо, то могу нарыть у себя кусок дельфового сырца...
> Только зачем на .NET так извращаться?
Ну я только первый день кодю на нём. Хотелось замутить что-то васюковое и при этом то, чего я не мог сделать на шестом. Ответ - многопоточное приложение. Начал делать блокнот, у которого при первом запуске загружается основная часть, а потом только создаёшь новые окна под открываемые документы. Таким образом скрадываю недостаток NET'а - скорость запуска. Однако, если ассоциировать какое-нибудь расширение с этой прогой, не избежать самой долгой части открытия документа - открытия этого самого приложения, за которым будет следовать быстрая передача командной строки в основную прогу и закрытие второй копии. Поэтому я решил написать маленькую прогу на сях, которая будет тока передавать командную строку в моё приложение на Net'е. Хэндл главного окна я думал хранить в реестре, а передачу командной строки осуществлять через оконные сообщения (счас вот подумал делать это прямо через реестр - выделить поток, который бы ждал изменения значения в реестре и при изменении воспринимал это как новый файл, но это уже потом как-нибудь).
И вот задача поймать оконное сообщение в нетвасе.
Конечно, прога напоминает попытку почесать правое ухо левой пяткой, но сейчас больше ничего в голову не лезет, а быстрый блокнот мне уже давно нужен (дефолтовый довольно быстрый, но эти его ограничения и отсутствие покусочного открытия - косяк). К тому же - надо что-то написать чтоб научиться.
Имею VS.NET 2003 на Cel-1.7GHz. Периодически безбожно тормозит, особенно после нескольких компиляций хоть сколь-нибудь большого проекта, что лишний раз доказывает, что "победители Java" не умеют бороться даже с элементарными memory leaks
Примерно 6 месяцев работал с VS .NET 2003 на Athlon 2000, 512 MB RAM.
Никаких тормозов я не замечал.
Единственное, что очень напрягало - это, конечно, работа с веб-приложениями, там да, запуск выполнялся нешустро, но там это объяснимо.
Что касается беспомощности победителей Java...
Я уже давненько не работал с VS 2003, поэтому буду говорить за 2005, 2-ю бету.
Компьютер не выключался ~неделю, все время была запущена VS 2005, в ней поочередно открывались различные проекты различных типов (начиная с веб-приложений, заканчивая офисными), никаких тормозов обнаружено не было - скорость работы находилась в допустимых пределах.
Машина та же:
Athlon 2000, 512 MB RAM.
Сори, но мне в свое время пришлось немного поработать на программе, написанной на Java - уже от этого у меня начали возникать довольно нехорошие чувства, я, конечно, не сомневаюсь, что memory leaks там не было, но все равно в скорости работы даже VS .NET выигрывала у этого "приложения".
Microsoft Visual Basic .NET 69586-335-0000007-18917
Сори, но цифры мне эти ни о чем не говорят, меня больше интерисует версия VS .NET (хотя, судя по дальнейшему тексту сообщения я понял, что речь идет о VS 2003).
Особенно хорошо тормоза видны, если сделать следующее (не знаю обязательны ли все пункты, но много экпериментировать счас влом - не хочу потерять интерес к кодингу):
<.....>
Повторил несколько раз описанные процедуры - никаких задержек, все выполняется практически мгновенно.
При этом у меня еще запущенно несколько довольно ресурсоемких процессов: VS .NET 2005, MSDN, SQL Management Studio, 2 инстанции SQL Server 2005(Express и CTP).
Комп, конечно, не первой свежести:
Пень - 2400B
Память - 256 (частоту уже не помню)
Видуха - 64 четвёрка.
Не знаю... Я склоняюсь к мнению, что для VS .NET на машине должно быть 512 памяти, но это мое личное мнение...
Попробуй, конечно, поставить 512, оценить скорость работы, но еще неплохо бы поискать возможные причины и с самой ОС.
Для справки: у меня Windows Server 2003.
Это разве не называется сабклассингом?
Формально это не субклассинг.
Но вот в дельфях я видел строчку по смыслу означающую "сообщения под номером 533 (uMsg), преобразовывать в событие MyEvent" и потом с этим сообщением можно было работать как и с любым другим событием (Load, Activate, MouseUp...).
Понял, в .NET такого нет - можно разве что самому написать обработку этого сообщения и генерировать соответствующее событие.