powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создал форму не в главном потоке
12 сообщений из 37, страница 2 из 2
Создал форму не в главном потоке
    #38131117
вопросец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79вопросецзаключается ноу хау? Это стандартные тех возможности :).

Хм... Буду знать, что еще и так можно применять. Обычно я делал всё UI в основном треде, а из вторичных - нотификацию. Раньше это было через PostMesage. На Net никаких сложных интерфейсов не рисовал, всё как то в одном потоке помещалось :-)

угу где-то надо, где-то нет. от контекста зависит.
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131132
вопросец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степивопросецArm79,

Например, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п..
пипец....

однажды в студенную зимнюю пору, я из лесу вышел был сильный жара.
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131288
FatherSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вобщем оказалось через invoke не работает как раз. Я сделал через сообщения виндовозные - так пашет, а через инвок выдает ошибку.
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131353
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопросецНапример, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п..
больше 60 изменений в секунду - не перерисовать :)
две панели - это ни о чём
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131456
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Хм... Буду знать, что еще и так можно применять. Обычно я делал всё UI в основном треде, а из вторичных - нотификацию. Раньше это было через PostMesage. На Net никаких сложных интерфейсов не рисовал, всё как то в одном потоке помещалось :-)


Может будет интересно для WPF.

Одно приложение, три UI потока, со своим message loop, в каждом потоке по одному окну. кто-то да найдет применение

гавнакодец
MainWindow.xaml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Border Background="Black">
            <Border.Triggers>
                <EventTrigger RoutedEvent="Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Storyboard.TargetProperty="Background.Color" To="DarkRed" AutoReverse="True" RepeatBehavior="Forever" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Border.Triggers>
        </Border>
        <Button VerticalAlignment="Center" HorizontalAlignment="Center" Content="Вернуть ID потока" Click="Button_Click_1"/>
    </Grid>
</Window>



MainWindow.xaml.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication4
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(string.Format("{0}", Thread.CurrentThread.Name));
        }
    }
}



Program.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Threading;

namespace WpfApplication4
{
    static class Program
    {
        private static List<Thread> _uiThreads;

        public static void Main()
        {
            _uiThreads = new List<Thread>{
                new Thread(UiThread) { ApartmentState = ApartmentState.STA, Name = "UI1 THREAD" },
                new Thread(UiThread) { ApartmentState = ApartmentState.STA, Name = "UI2 THREAD" },
                new Thread(UiThread) { ApartmentState = ApartmentState.STA, Name = "UI3 THREAD" }
            };

            _uiThreads.ForEach(t => { t.Start(); });
        }

        public static void UiThread()
        {
            var mainWnd = new MainWindow();
            mainWnd.Closed += mainWnd_Closed;
            mainWnd.Show();

            Dispatcher.Run();
        }

        static void mainWnd_Closed(object sender, EventArgs e)
        {
            (sender as MainWindow).Closed -= mainWnd_Closed;

            Dispatcher.ExitAllFrames();
        }
    }
}






ps. lb ~ вопросец. компы разные.
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131461
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

я ляпнул абы че
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131464
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

ничего страшного
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131669
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилдве панели - это ни о чём

Видимо вы ни разу не были на всяких ГПЗ и НПЗ, где стоят по три 22-24 монитора у каждого оператора :)

Как правило, нормальные SCADA системы имеют свои GUI разработчики верхнего уровня. В крайнем случае можно прилепить и нечто универсальное типа InTouch и не изобретать велосипед :)
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131678
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LameUser,

может тебе рассказать как как контроллеры видеостен работают?

3-4 монитора на рабстанцию не требуют никаких программных извращений.
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131695
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилLameUser,

может тебе рассказать как как контроллеры видеостен работают?

3-4 монитора на рабстанцию не требуют никаких программных извращений.

Странный ты, то говоришь что 2 ни о чем, то предлагаешь 3-4. Ты уж определись со своей позицией, либо я не так понял ход твоих мыслей из предложения

Изопропилдве панели - это ни о чём


Про контроллеры видеостен мне неинтересно (зачем мне знать как работает большой телевизор? - мне главное чтобы тех. процесс был автоматизирован правильно и был удобный эргономичный GUI для оператора), а через что будет смотреть оператор тех. процесса на картинку, и уж тем более каким образом формируется изображение на девайсе - мне без разницы. Я конкретно говорил про SCADу верхнего уровня, которая где-то здесь упоминалась в топике.


Изопропил3-4 монитора на рабстанцию не требуют никаких программных извращений.


Так я именно это и имел в виду, когда написал:

LameUserКак правило, нормальные SCADA системы имеют свои GUI разработчики верхнего уровня. В крайнем случае можно прилепить и нечто универсальное типа InTouch и не изобретать велосипед :)
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131699
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LameUser,

что сказать то хотел?
...
Рейтинг: 0 / 0
Создал форму не в главном потоке
    #38131703
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилLameUser,

что сказать то хотел?

Не буду больше кормить, сверху написано.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создал форму не в главном потоке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]