1. C# / Говнокод #19533

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    if (p != null)
    {
        Thread thread = new Thread(() =>
        {
            StaffList.App.Controls.Personal.PersonRec rec = new Controls.Personal.PersonRec();
            rec.DataContext = p;
            rec.Mode = StaffList.Controls.OperatingMode.Show;
            var win = new BaseWindow();
            win.Form = rec;
            win.ShowDialog();
        });
    
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
    }

    Это мы так делаем немодальные окна.

    Запостил: kerman, 25 Февраля 2016

    Комментарии (74) RSS

    • Какая асинхронность! Какой параллелелизм!
      Ответить
    • C# нормально работает с GUI из левых тредов? Офигеть, редко где такое встретишь...
      Ответить
      • Помниться пару лет назад ты так же удивлялся
        Ответить
        • Помниться, пару лет назад ты так же удивлялся.
          Прости, ничего личного, просто бизнес.
          Ответить
      • Только до того момента, когда понадобится изменять свойства гуевых объектов
        Ответить
      • Нет, конечно. Как раз для этого товарисч влепил туда ApartmentState.STA, что, по сути, означает запуск кода в GUI потоке.
        Ответить
        • > означает запуск кода в GUI потоке
          Бред
          STA делается для того, чтобы созданный поток и любой другой не взаимодействовали через COM, ибо WinForms/WPF писали пидоры, не могущие в многопоточность
          Ответить
          • Покажи мне гуи-фреймворк, который в неё может...

            Я почему и удивился, когда увидел этот код.
            Ответить
            • 2016 год на дворе, никто не смог придумать не то что многопоточные гуй-фреймворки, а вообще хоть какие-то адекватные гуй-фреймворки
              Ответить
              • Гуй нинужен.
                Ответить
                • Это тебе не нужен
                  Ответить
                • ну, для hello world нет.
                  меня тут как-то попросили написать mailer, который будет рассылки делать. что нужно было реализовать:
                  поля отправитель, адресат
                  тело письма
                  подпись
                  коннект к оракловой базе, и запрос (обычно страницы на две)
                  возможность вложить результат запроса в html в тело письма
                  возможность вложить результат xlsx файл с форматирование в определенные поля, при чем на разные листы разные запросы и коннекты
                  запаковка в zip с паролем и без
                  возможность выложить на сетевую шару
                  возможность выложить на FTP
                  возможность выложить на корпоративный файлообменник

                  вроде ничего не забыл, но суть-то в том, что когда меня попросили это сделать, они хотели все это передавать в аргументах.
                  Ответить
                  • зачем тут гуй ? конф XAML спасет
                    Ответить
                    • у меня вообще-то был конструктор этих конфигов гуевый
                      Ответить
                      • ХАМЛ пишется как поэма. Зачем ему конструктор?
                        Ответить
                • показать все, что скрыто7 прыщепидоров на сайте?
                  Ответить
                  • Просто борманд обычно умные вещи говорит, ты не замечал?
                    Ответить
                    • Нет, он с умным видом говорит банальные вещи. Но конкретно тут - если всяким прыщехуесосам не нужен гуй, то ради клиентов придется ведь его сделать? Или тут все исключительно бекенды пилят?
                      Ответить
                    • bormand, перелогинься!
                      Ответить
              • время пилить свой фреймворк
                Ответить
                • фреймворк сам не запилится
                  Ответить
                  • Зачем мне терминал? У меня нет времени, чтобы ебаться с ним
                    Ответить
                    • Поебись с ним на планшете, сучечка!
                      Ответить
                      • Surface считается за планшет?
                        Ответить
                        • Без клавиатуры — да.
                          Ответить
                          • что значит "без клавиатуры"? мне казалось форм-фактор определяет, является ли устройство планшетом или ноутбуком, а не наличие физической клавиатуры.
                            Ответить
                            • В контексте обсуждения важно наличие физической клавиатуры.
                              Ответить
                              • в каком контексте? сейчас к любому планшету подключается физическая клавиатура. если не физически, то через BT. теперь любой планшет не планшет?
                                Ответить
                                • В контексте http://govnokod.ru/19533#comment314191
                                  попробуй поебись с ним с дефолтовой экранной клавиатурой.

                                  http://govnokod.ru/19062#comment314322
                                  Ответить
                                  • что не так с виртуальной клавиатурой на планшетах?
                                    Ответить
                                    • Блядь, попробуй на планшете/смартфоне поюзать терминал, потом сам расскажешь.
                                      Ответить
                                      • и чо? я RDP на 6 дюймовом смарте юзал, и все ок. я тебе даже больше скажу, я в метро ехал и хотфиксы хранимых процедур делал.
                                        конечно же, если бы у меня был мозг-коннектор, было бы удобнее, но его пока в продаже нет
                                        Ответить
                                        • Ты видишь разницу между мышиным рдп и соснолью?
                                          Ответить
                                          • >> сосноль

                                            это типа

                                            · · · - - - · · · - - - - -

                                            ?
                                            Ответить
                                          • Вчера с планшетом на 8.1 работал (файлики покопировать, позапускать, немного почитать лог) - изматерился. Интерфейс всё ещё мелкий и неудобный.
                                            Андроиды и иосы с их "однозадачностью" намного приятнее.

                                            Так что RDP может и похуже сосноли оказаться...
                                            Ответить
                                            • А ты не думай, а проверь. И сюда сходи http://govnokod.ru/19062#comment314322
                                              Ответить
                                              • > И сюда сходи
                                                Я уж подумал, что это одна из следующих ссылок:
                                                http://govnokod.ru/173#comment8054
                                                http://govnokod.ru/212#comment266288
                                                http://govnokod.ru/212#comment266289
                                                http://govnokod.ru/1490#comment266279
                                                http://govnokod.ru/3346#comment28975
                                                http://govnokod.ru/3508#comment33842
                                                http://govnokod.ru/4919#comment64635
                                                http://govnokod.ru/8526#comment119840
                                                http://govnokod.ru/11461#comment148017
                                                http://govnokod.ru/12774#comment172660
                                                http://govnokod.ru/13857#comment198211
                                                http://govnokod.ru/15862#comment230065
                                                http://govnokod.ru/15862#comment230227
                                                http://govnokod.ru/16202#comment236876
                                                http://govnokod.ru/17744#comment266280
                                                http://govnokod.ru/17742#comment266281
                                                http://govnokod.ru/17741#comment266282
                                                http://govnokod.ru/17741#comment266283
                                                http://govnokod.ru/17740#comment266284
                                                http://govnokod.ru/17739#comment266285
                                                http://govnokod.ru/17738#comment266286
                                                http://govnokod.ru/17744#comment266287
                                                Ответить
                                                • Ты по базе чтоли поискал, судя по cleaned? Тебе делать нех?
                                                  Ответить
                                                  • Ага, по своему распарсенному. Да там делать ничего и не надо почти. Что-то вроде console.log(base.commentsList.filter(function(c){ return c.text.toLowerCase().trim() == 'хуй'; }).map(function(c){ return 'http://govnokod.ru/' + c.post.id + '#comment' + c.id; }).join('\n'));
                                                    Ответить
                                                    • Похоже на банальные понты "смотрите, уменя есть база постов говнокода, и я даже умею по ней искать!"
                                                      Ответить
                                                      • Слишком банальные понты получаются. Такая база есть у любого желающего, а искать по ней может каждый третий не-бот с ГК.
                                                        Ответить
                                                        • Но, кроме тебя, никому не нужно? :D

                                                          У меня есть но хуй знает где лежит.
                                                          Ответить
                                                          • > Но, кроме тебя, никому не нужно? :D
                                                            Нет. Гугл забывает старые посты, одна из возможностей что-то найти - как раз подобные базы.
                                                            Ответить
                                                            • Гугл ничего не забывает пока страница жива.
                                                              Ответить
                                                              • Как тогда заставить его выдать результат?
                                                                Скажем, по запросу site:govnokod.ru "2110" не выдаётся страница с самим гк, только упоминания его в топе, что наводит меня на мысль, что гугл забыл про саму страницу http://govnokod.ru/2110
                                                                Ответить
                                                                • Кстати, совсем недавно, с 15 по 24 февраля кто-то зарегистрировал себе 850 ботов.
                                                                  Ответить
                                                                  • и совсем недавно кто-то спрашивал где ему напиздить 850 доменов
                                                                    кто бы блять это мог быть??
                                                                    Ответить
                                                                    • И что ответили, напомни?

                                                                      Ы-ыыы, у вас до сих пор печет от утопленных говнокодов?Кстати, один раз утопленный вроде бы заново не появляется, нет?
                                                                      Ответить
                                                                • Слушай, я хз. Кто скажет, почему гугл забывает страницы?
                                                                  Ответить
                                                • авы, батенька, я гляжу большой спец по хуям
                                                  Ответить
                                            • bormand, а ты в проводнике это делал?
                                              Ответить
                                      • пидарок ты наверное гнусавишь вот у тебя и проблемы. Я меня тел нормально от голоса набирает команды.
                                        Ответить
                                        • Со слов очевидцев: шёл я в магазин, а на встречу - смотрю, идёт упоротый какой-то. Глаза красные, по сторонам не смотрит, в руках телефон сломанный - только чёрный экран с какими-то глюками. Вдруг начал с телефоном разговаривать. Я уж подумал, что это ему звонок пришёл, но звонка не было, к уху он телефон не прикладывал, наушников у него тоже не было. И такую чушь несёт: элэс минус элэйэйч ретёрн пинг эйтдотэйт дотэйт дотэйт ретёрн эрэм сука бэкспейс бэкспейс бэкспейс бэкспейс бэкспейс бэкспейс бэкспейс сиди дотдот ретёрн. Я испугался, пожарным звоню, в милицию, в полицию, в скорую, в дурдом, в морг, на кладбище и в спортлото. Спасибо, хоть из спортлото приехали и забрали наркомана.
                                          Ответить
              • > никто не смог придумать не то что многопоточные гуй-фреймворки

                Thread confinement (раздели данные по потокам, взаимодействуй через очереди) - отличная техника, я в последнее время всё чаще её использую, совсем не для гуя. На ней Chromium зиждется (https://www.chromium.org/developers/design-documents/threading).
                Ответить
                • а с крестах нет переключений между контекстом тредов?
                  Ответить
                  • Везде есть. Что это меняет?
                    Ответить
                    • так, в Task'ах в c# нет переключений контекста
                      Ответить
                      • > между контекстом тредов?
                        > Task'ах в c# нет переключений контекста

                        Очевидно потому, что таски - это не треды.
                        Ответить
                        • вообще, таски это синтаксический сахар по сути. но они так же как и треды ловят эксепшен при попытке напрямую изменения UI контролы, который не был создан в этом же треде/таске.
                          Ответить
                          • > так же как и треды
                            Я не знаю шарп, но таски же исполняются в фоновых worker тредах? Тогда вполне логично, что им надают по рукам за обращение к UI.
                            Ответить
                            • > Я не знаю шарп, но таски же исполняются в фоновых worker тредах?
                              Да, у CLR есть свой тредпул для тасков
                              Ответить
                • А жавоидный гуй разве не так работает - все действия добавляются в синхронизированную очередь, откуда их достает гуевый тред?
                  Ответить
              • https://lurkmore.co/Гуй ?

                Нужен, нужен. Мы этот гуй продаём. Нед гуя - нед денег.
                Ответить
      • Дефолтовый жавовский гуй вроде работает нормально. Ты сишкой не упоролся?
        Ответить
        • AWT?
          Ответить
        • В AWT/Swing всё взаимодействие с гуём должно происходить в потоке EDT. Именно поэтому в main'е каждой свинговой программе используется invokeLater.
          Ответить

    Добавить комментарий