Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Пучок вопросов по Нэту. Добавлено: 10.07.05 02:13  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Соорудил свой многопоточный блокнот на Нэте. Счас вот в нём пишу.
Только вот гонит он.
Причём без видимых закономерностей. То всё тип-топ весь день, то каждые пять минут предлагается его продебажить (кстати, круто, что теперь и васюковский код можно "цеплять и отлаживать" даже при незапущенном васе).
Итак, вопросы:
1. Иногда, при попытке закрыть окно, обнаруживаю, что оно не слушается. Т.е. тыкаю на закрытие - не закрывается, захожу в меню, там тыкаю - один фиг. Видать, форма просто не реагирует на Me.Close. Вызываю Оконный Менеджер (соорудил к этой проге) и убиваю поток (Abort'ом) этого окна. Окно остаётся жить. Умирает только при завершении процесса. Отчего это может быть?
Механизм вызова новых окон у меня типа такого:
а) Объявляю глобальную переменную потока.
б) Создаю и запускаю поток в процедуру.
в) Процедура вызывает .ShowDialog этого окна.
2. Иногда, вылезает ошибка, говорящая типа: ошибка - такой хэндл уже существует. Это про окна. Типа вася ошибается при назначении хэндла новому окну. На эту ошибку можно сделать Continue - я так и делаю, на что прога реагирует по-разному, иногда дохнет, но чаще прёт дальше. Что это такое?
3. Как сделать так, чтобы главное окно проги не появлялось сходу? Где бы я не ставил .Visible=false (даже в среде!) оно настырно появляется. Наверное, скоро перейду на Sub Main...
4. Как правильно обращаться с окнами? Всмысле, управлять ими вне их. Сейчас я создаю глобальные переменные и с диалогами обращаюсь как с классами, а с этими переменными как собственно с окнами (как в старом васе). Это правильно? Для главного окна тоже создаю переменную frmHead и в Load ставлю frmHead=Me.
Вроде всё работает (если только не считать первые две траблы следствием такого обращения с окнами), но чтоб быть уверенным.
5. Надо ли уничтожать экземпляры классов class_var=nothing? Вскользь видел где-то, что среда их вполне корректно высвобождает по мере надобности и это может только лишние Exeption создать.
6. Как заставить прогу выглядеть по икспишному?
7. Куда делось "исправление кода на лету" ("Apply code changes" как в сишке, а в шестом васе это вообще само собой разумелось) во время отладки? Если исчезло, то передайте Биллу, что я тоскую...
8. ОЧЕНЬ ПРОШУ: дайте кто-нибудь ссылку на как можно более полное описание ключевых фенек Нэт-Васи.

Всем спасибо, что хотя бы прочитали. 8)

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 10.07.05 02:35
Соорудил свой многопоточный блокнот на Нэте. Счас вот в нём пишу.

Сори, а, может, в этом вся проблема?
Я немного работал с многопоточностью в Windows Forms, но этого "немного" было достаточно, чтоб понять, что многопоточность - вещь жестокая.

Писал запуск формы при выполняемом параллельном процесе, типа, сплешь-форма.
Писал все по методике Д. Эпплмана (тм), и все равно иногда, может, раз на 30 запусков вылазила какая-то бага вообще в левой строчке кода, например, сгенерированной редактором Windows-формы.

Вобщем, тема эта очень и очень сложная, чтоб это понять советую для начала почитать Д. Эпплмана (Переход на VB .NET, Стратегии, концепции, код) (если ты этого, конечно, еще не сделал).
Ну и поискать более обширную литературу по этой теме.
Помню, кто-то советовал Рихтера, не помню, правда, названия.

6. Как заставить прогу выглядеть по икспишному?

Добавить манифест

7. Куда делось "исправление кода на лету" ("Apply code changes" как в сишке, а в шестом васе это вообще само собой разумелось) во время отладки? Если исчезло, то передайте Биллу, что я тоскую...

Форсировало сразу на VB .NET 2005.
Кстати, VB .NET 2005 передавал тебе, что он тоже по тебе тоскует.

8. ОЧЕНЬ ПРОШУ: дайте кто-нибудь ссылку на как можно более полное описание ключевых фенек Нэт-Васи.

Ууууууууууу....
http://msdn.microsoft.com/
Далее по ссылкам.

А если серьезно - для начала книгу по фундаментам .NET - Эпплман или Рихтер, потом - N книг по классам .NET Framework (в моем случае это был Петрусос, "Эффективная работа с VB .NET).
Потом - книги уже по конкретной тенологии (например, ASP .NET).
Ну и параллельно - MSDN.

Удачи.

Ответить

Номер ответа: 2
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #2
Добавлено: 10.07.05 02:43
6. Как заставить прогу выглядеть по икспишному?

Добавить манифест


например, вот так:
http://www.vbnet.ru/forum/show.aspx?id=77321
если в .нет работать будет

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 10.07.05 20:28
А может проще обойтись без многопоточности. Зачем она тебе в текстовом
редакторе?

Многопоточность сама по себе штука серьезная и требует грамотного
написаиния кода по синхрноизации доступа к общим ресурсам. А в плане
работы с WinForms, так есть еще один нюанс: к кону и его элементам
может обращаться только тот поток, который его создал. Взаимодействие
других потоков с объектом делается программистом обычно через
делегаты. Если все как надо написать, то ошибок не будет. Проверено.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам