Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запустить DDE SERVER из под UI, exception has been thrown by the target  
:(
    Опции темы
qpile
Дата 21.11.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Здравствуйте! Пытаюсь запустить DDE server по нажатию клавиши вот так:

Код

 private void button1_Click(object sender, EventArgs e)
        {
          
            using (DdeServer server = new MyServer("server"))
            {
                // Register the service name.
               server.Register();

                // Wait for the user to press ENTER before proceding.
                Console.WriteLine("Press ENTER to quit...");
                Console.ReadLine();
            }

        }


При этом если вываливается ошибка exception has been thrown by the target 

. Но если запускать сервер вот так

   
Код

public static void Main()
        {

            
           

            try
            {
                // Create a server that will register the service name 'myapp'.
                using (DdeServer server = new MyServer("kbrobot.ru"))
                {
                    // Register the service name.
                    server.Register();
                    
                    // Wait for the user to press ENTER before proceding.
                    Console.WriteLine("Press ENTER to quit...");
                    Console.ReadLine();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.WriteLine("Press ENTER to quit...");
                Console.ReadLine();
            }
            
        }

То все работает корректно. В чем ошибка?

Это сообщение отредактировал(а) qpile - 21.11.2010, 19:23
PM MAIL   Вверх
i2m
Дата 21.11.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 4.5.2010

Репутация: нет
Всего: 1



qpile, Вам не кажется странным, писать в консоль в WinForm приложении? Если создана совместная работа, то снимаю вопрос. На какой строке вываливается exception? Может ошибка все равно возникает просто вы ее обрабатываете и вам кажется что все работает? Скорее всего именно так и происходит, и нужно копать в сторону самого класс DdeServer, в стандартной библиотеке я такого класса не нашел, так что лучше задать этот вопрос где вы его и взяли.

Это сообщение отредактировал(а) i2m - 21.11.2010, 18:30
PM MAIL   Вверх
qpile
Дата 21.11.2010, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Да, Вы правильно заметили.ЛУчше убрать smile. Эксепшн вываливается вот здесь

  
Код

private void OnTimerElapsed(object sender, ElapsedEventArgs args)
            {
                // Advise all topic name and item name pairs.
                Advise("*", "*");
            }


Вот кусок начала класса. По факту вываливается в конструкторе

 
Код

public class MyServer : DdeServer
        {
            private System.Timers.Timer _Timer = new System.Timers.Timer();

            public MyServer(string service): base(service)
            {
                // Create a timer that will be used to advise clients of new data.
                _Timer.Elapsed += this.OnTimerElapsed;
                _Timer.Interval = 1000;
                _Timer.SynchronizingObject = this.Context;
            }

            private void OnTimerElapsed(object sender, ElapsedEventArgs args)
            {
                // Advise all topic name and item name pairs.
                Advise("*", "*");
            }

            public override void Register()
            {
                base.Register();
                _Timer.Start();
            }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0822 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.