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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Трансляция данных между программами 
:(
    Опции темы
Буратиныч
Дата 26.1.2013, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Каким образом можно передать данные (объекты структур или ссылки на них, массивы или просто переменные) из одной программы в другую? Могу предположить, что надо покопаться в теме Marshal или Socket, но не уверен, да и сходу реализовать не просто. Буду благодарен за простой пример: в одной программе что-то пишется в textblock или консоль, а в другой тут-же отображается в textbox, при этом текстовый файл в качестве посредника не используется. Так думаю легче будет понять.
PM MAIL   Вверх
kiler4747
Дата 26.1.2013, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Используйте wcf
PM MAIL Skype   Вверх
Certain
Дата 26.1.2013, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как вариант Named Pipes... Хотя и в WCF такой вариант тоже реализован
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
AntiInt
Дата 27.1.2013, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



лучшей вариант это wfc
можно и старым-добрым remouting-ом обойтись
PM MAIL   Вверх
Буратиныч
Дата 27.1.2013, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а если отправляющий клиент на С/С++, а принимающий сервер на С#, то что лучше?
PM MAIL   Вверх
Буратиныч
Дата 29.1.2013, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Имеет ли смысл переписать этот пример используя модификатор async?
PM MAIL   Вверх
Certain
Дата 30.1.2013, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А смысл? Там и так всё асинхронно работает
BeginWaitForConnection не останавливает вызывающий поток.
Все методы, начинающиеся с Begin и End являются асинхронными в Framework

Это сообщение отредактировал(а) Certain - 30.1.2013, 07:10
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Буратиныч
Дата 30.1.2013, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да я перенёс в свой WPF проект серверную часть. Дебаггер пишет, что коннект есть, но сообщения не поступают.

Также в этой части Invoke подсвечивается красным и выдаётся ошибка Cannot resolve symbol 'InvokeRequired'.
Может ему каких-то using-ов не хватает?    
  
Код

        private void PipesMessageHandler(string message)
        {
            try
            {

                //if (this.InvokeRequired)
                //{
                //    this.Invoke(new NewMessageDelegate(PipesMessageHandler), message);
                //}
                //else
                //{
                    Ptext.Text = message;
                //}
            }
            catch (Exception ex)
            {

                Debug.WriteLine(ex.Message);
            }

        }

PM MAIL   Вверх
Certain
Дата 30.1.2013, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Может проект сюда скинете...
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Буратиныч
Дата 30.1.2013, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Certain, скинул.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  PipesServerWPF.zip 63,61 Kb
PM MAIL   Вверх
Certain
Дата 30.1.2013, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Поправил Ваш пример.
Осталось только из полученного массива нулевые байты удалить, а так всё принимает и отправляет. Клиент там же


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  PipesServerWPF.rar 61,19 Kb
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Буратиныч
Дата 30.1.2013, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Certain @ 30.1.2013,  13:54)
Поправил Ваш пример.
Осталось только из полученного массива нулевые байты удалить, а так всё принимает и отправляет. Клиент там же

Спасибо. А что именно я там не доделал?

Всё-таки, если заменить эти конструкции на лябда-выражения и await/async, будет ли пример более проще и понятнее. Сейчас не очень много литературы по C# 5.0, поэтому не знаю как правильно сделать.
PM MAIL   Вверх
Certain
Дата 30.1.2013, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А где Вы хотели использовать лямбда-выражения? И await/async?
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Буратиныч
Дата 30.1.2013, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Certain @ 30.1.2013,  14:17)
А где Вы хотели использовать лямбда-выражения? И await/async?

Не знаю. Пока только въезжаю в тему.

А изменения подскажите в чём заключались?

Добавлено через 7 минут и 59 секунд
А, получается принципиально другая команда должна быть?
txtForReceiving.Dispatcher.Invoke(delegate {txtForReceiving.Text = message; }); 
PM MAIL   Вверх
Certain
Дата 30.1.2013, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да, напрямую обращаться к UI из другого потока нельзя.
Можно и так  smile 
Код

txtForReceiving.Dispatcher.Invoke(() => { txtForReceiving.Text = message; }); 


Добавлено через 9 минут
Хорошая статья await/async
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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