Страница: 1 |
Страница: 1 |
Вопрос: Скажем: "Нет!!!" второму экземпляру форм
Добавлено: 11.08.04 15:05
Автор вопроса: Barulya
Народ подскажите пожалуйста, как поступить, если необходимо запретить из приложения, запущенного в трее, запуск второго экземпляра формы. Т.е. первоначально, при запуске приложения, форма не запускается, а запускается при выполнении команды контекстного меню, но если повторно вызвать выполнение команды запускается второй экземпляр формы. Код вызова формы:
Dim frmM As New frmLook()
frmM.Show()
frmM = Nothing
Название формы меняется в зависимости от даты (изначально).
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #1
Добавлено: 11.08.04 15:12
Dim frmM As New frmLook()
Вынеси куда-нибудь в лоад...
Номер ответа: 2
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #2
Добавлено: 11.08.04 15:14
Не хочу преждевременно загружать форму память- форма мне нужна не постоянно, а только по требованию
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 11.08.04 19:09
А в чем проблема? Когда нужно, тогда и загружай:
Dim f As New Form1
f.Show
Номер ответа: 4
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #4
Добавлено: 16.08.04 18:15
В том, то все и дело, что когда форма закрывается память отведенная под приложение не освобождается frmM=Nothing не помогает. Как быть
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 16.08.04 18:20
При закрытии формы память не освобождается.
Она освободится при вызове сборки мусора, происходит сборка мусора
тогда, когда заполнится объем памяти, отведенный приложению.
Сборку мусора можно вызвать вручную, для этого используется метод
Collect класса GC.
Почитайте про автоматическое управление памятью в .NET, если не
ошибаюсь, статья об этом есть на этом сайте.
Номер ответа: 6
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #6
Добавлено: 16.08.04 18:22
Блин, Павел опередил))
2Barulya, короче ключевое слово "Garbage Collector"
Номер ответа: 7
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #7
Добавлено: 16.08.04 18:33
Спасибо, посмотрю...
Номер ответа: 8
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #8
Добавлено: 16.08.04 18:48
Чего-то у меня не получается.. После закрытия формы вызываю этот метод- никакой реакции...
Номер ответа: 9
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #9
Добавлено: 16.08.04 19:39
Дело в том, что я использую следующий код
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1)
Try
System.Windows.Forms.Application.Run()
Catch ex As Exception
Finally
t.Dispose()
End Try
Сам процесс занимает порядка 3Мб
И при нажатии на икону в трее загружается форма в виде модального окна, (~14Мб) после закрытия формы я запускаю метод Colleсt (14 МБ). Что можно сделать???
Номер ответа: 10
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #10
Добавлено: 16.08.04 19:44
Да вот еще что на форме я использую контролы: Timer, ImageList (с иконами), ContextMenu, может быть они не выгружаются???