Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 27 из 27

Тема: DX cluster and C#

  1. #21

    Регистрация
    02.11.2009
    Адрес
    Воронеж
    Сообщений
    489
    Позывной
    RN3KK
    Новички всегда отдают дань моде, т.к. подвержены этому со стороны разработчиков IDE. Скачал, начали писать. А что внутри, не всегда бывает интересным.


  2. #22
    Цитата Сообщение от UZ5DM Посмотреть сообщение
    Но в winform не хочет работать.
    Запустил в отельном потоке (Thread) - все равно не идет

    Да и еще вопрос - как корректно закрыть tcpClient ?
    Можете использовать мой код для DX-кластера отсюда: http://ua3gdw.ru/index.php/loggernet-download Там исходники выложены.

    Добавлено через 5 минут(ы):

    Цитата Сообщение от UZ5DM Посмотреть сообщение
    Наверное модератору нужно переименовать тему в - Разработка на C#
    Это будет правильнее. Тогда можно будет тут общаться по разным вопросам связанным с C#
    На моём сайте есть и WinForms - контроллы (с исходниками) написанные лично мной в процессе изучения C#.
    Последний раз редактировалось UA3GDW; 14.09.2017 в 21:40.

  3. Спасибо от UZ5DM

  4. #23
    Спасибо огромное UA3GDW !

  5. #24

  6. #25
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,945
    Цитата Сообщение от alex_m Посмотреть сообщение
    ....
    Для асинхронных операций можно также посмотреть в сторону Task-based асинхронное программирование, в частности async await.
    Это другая концепция, но она доступна только начиная с .NET 4.5. И для начинающих думаю сложновато будет.
    Справедливости ради, пространство имен System.Threading.Tas ks доступно начиная с версии .NET 4.0.
    И поддерживается на Windows XP с пакетом обновления 3 (SP3). Так что можно использовать и Task<T>
    тоже совместно с async / await. В 4.5 версии просто много чего вкусного добавили и все. Но для простых
    вещей врядли пригодится все.
    Один момент по коду. За использование BeginInvoke как при вызове из самого контроля, так и у делегата
    по-хорошему бьют по рукам. Просто у нас многие программисты не читают доки MSDN, а там абсолютно
    четко черным по белому об этом написано, что такое использование нарушает синхронизацию. Если, конечно,
    наплевать на отсутствие thread-safe, то вперед. Но в серьезных приложениях так не делают. А правил всего
    только 3, цитата из оф. доки:

    "This leads to three simple rules:
    If you update the control only from the UI thread, use neither InvokeRequired nor Invoke
    If you update the control only from a thread other than the UI thread, use only Invoke.
    If you update the control from both the UI thread and other threads, use Invoke in combination with InvokeRequired."

    И для простоты написания лучше всего поставить себе из гита Reactive Extensions (React .NET) и делать удобные
    вещи и не заморачиваться на многие проблемы, так как фреймворк "подумает" за вас. И если уж используются
    WinForms, то использовать надо паттерн MVVM, а не тупо апдейтить визуальные контроли из другого потока
    делегатом. Старый подход, который уже умер давно. Если говорим о современной версии .NET, то и давайте брать
    из нее лучшую практику (best practices), а не изобретать колесо заново.

    PS. Стоить заметить, что с использованием .NET Core 2.0 в связке с AvaloniaUI можно писать нативные
    приложения, которые по UI выглядят одинаково и на виндах и на линуксе. Про Mono забыли, уже давно
    другой подход. И не надо думать о Win32 API.

    Да и гораздо проще напиcать тогда уж хелпер:
    void UpdateUI(Action action)
    {
    if (InvokeRequired)
    {
    Invoke(action);
    }
    else
    {
    action();
    }
    }
    и использовать его как:
    UpdateUI(() => SampleLabel.Text = "Test");
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  7. Спасибо от UZ5DM

  8. #26
    Цитата Сообщение от RX1AL Посмотреть сообщение
    PS. Стоить заметить, что с использованием .NET Core 2.0 и на виндах и на линуксе. Про Mono забыли, уже давно другой подход.
    а как насчет windows xp?

  9. #27
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,945
    Цитата Сообщение от alex_m Посмотреть сообщение
    а как насчет windows xp?
    На ХР, к сожалению, .NET Core бежать не будет, так как ХР поддерживает только .NET не выше 4.0.
    .NET Core поддерживается на следующих версиях: Windows 7 SP1, Windows 8.1, Windows 10, сервера
    пропущены за ненадобностью. На линуксе: очень большой список дистрибутивов. На Mac OS X: не
    ниже 10.12+.

    PS. Ну и такой вопрос возник: а сколько можно поддерживать ХР по времени? Еще 15-20-30 лет? Может
    все-таки взять и поставить себе 7-ку, 8-ку? Ну, а может и 10-ку виндов? Холивар на тему, какая из них
    лучше и почему? - не хочу разводить. В свое время спорили уже. Скажу только одно: не встречал ни разу
    у многих радиолюбителей проблем с 7-кой и 8-кой, и их старым софтом. Проблемы могут быть только
    из-за (...) ручек, не более.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  10. Спасибо от UZ5DM

Страница 3 из 3 ПерваяПервая 123

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Dx cluster
    от ut7du в разделе Правовой практикум радиолюбителя
    Ответов: 3
    Последнее сообщение: 20.08.2012, 12:29
  2. Обезьяны в DX cluster
    от Марат Казей в разделе Для любителей КВ
    Ответов: 9
    Последнее сообщение: 07.11.2009, 10:53
  3. DX-cluster на 144МГц
    от UA3CFM в разделе Для любителей УКВ
    Ответов: 11
    Последнее сообщение: 25.02.2009, 18:43
  4. DX-cluster on air
    от RD3AN в разделе Программное обеспечение
    Ответов: 1
    Последнее сообщение: 08.11.2006, 22:47
  5. DX cluster со спутника и MixW2
    от alex74 в разделе Цифровые виды связи Новые технологии в электронике и связи
    Ответов: 7
    Последнее сообщение: 18.10.2005, 18:44

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •