![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
blackbanny |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Я создаю dll своего проекта на C# Эту dll добавляю в зависимости другого приложения и запускаю свое приложение(dll), но после закрытия dll, закрывается и приложение которое ее использует В моем приложении есть класс, который создает форму:
в классе Form1 есть кнопка "Cancel", при нажатииa на которую я хочу закрыть свое приложение(dll), в Click на Cancel я пишу:
Без разницы, как закрывать приложение, вызывающее приложение закрывается вместе с моим... Подскажите, как закрыть только мое приложение?
Как узнать название процесса моей программы, чтобы я сделал Kill()? |
||||||
|
|||||||
Fobos |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
Приложение это все же процесс. А библиотеки уже загружаются в процесс. Сл-но не вы управляете приложением и не вы должны его закрывать, ваша библиотека всего лишь должна предлагать какую-то функциональность для ее клиентов. Если вы используете какие-то ресурсы которые надо освободить, можете реализовать паттерн IDisposable в вашем Form1. Еще раз, вас вызвали - пусть они и думают, вы должны лишь выполнять ту работу для которой вы написали библиотеку, остально дела корабельной артиллерии.
|
|||
|
||||
blackbanny |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Fobos, спасибо за ответ)
сейчас опишу подробнее и ситуацию, когда я не пишу в своем приложении
в моем приложении(dll) есть класс Program, который создает Form1 в методе
в стороннем приложении после подключения dll, я вызываю свое приложение таким образом:
первый раз в стороннем приложении моя программа вызывается корректно, а вот после второго вызова выпадает exception: exception если я комментирую строку в Program:
или ставлю true
то происходит тоже самое... :( |
||||||||||||
|
|||||||||||||
Fynivx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 13.8.2011 Репутация: нет Всего: 1 |
Если я правильно понял, Вы в библиотеке пытаетесь сделать полноценное WinForms-приложение.
Есть в .NET способы изоляции, но сейчас у Вас ошибка не в их незнании, а в неудачной архитектуре. В либу можно вынести формы и их инициализацию, но запуск самого приложения WinForms должен быть внутри самого приложения. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
blackbanny |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
проблему решил сделав singleton, т.е. в своем приложении класс с формой имеет instance конструктор и статический экземпляр класса, при каждом закрытии формы статический экземпляр класса уничтожал...
Это сообщение отредактировал(а) blackbanny - 19.6.2013, 05:24 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |