|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
пытаюсь выставить свойства компонента в том же потоке что создал (это точно тот поток) и пишет что доступ из потока не в котором создан контрол. Что за байда? Вроде можно ж так. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:36 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
то есть id потока в котором был вызов конструктора формы и initializecomponents (здесь как раз создаются) равен тому в котором пытаюсь свойства изменить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:37 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
"Создал форму не в главном потоке" А зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:41 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79"Создал форму не в главном потоке" А зачем? надо. веришь? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:46 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
FatherSql, так можно, код кинь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:50 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
FatherSqlверишь? Нет, не верю. Как я понимаю, все формы/контролы и т.п., корочЕ, всё UI, должны создаваться в основном потоке приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:51 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
FatherSql, авторто есть id потока в котором был вызов конструктора формы и initializecomponents (здесь как раз создаются) равен тому в котором пытаюсь свойства изменить. нельзя завязываться на id, визически поток (на уровне ОС) поток может быть другим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:55 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79FatherSqlверишь? Нет, не верю. Как я понимаю, все формы/контролы и т.п., корочЕ, всё UI, должны создаваться в основном потоке приложения. Технически можно по-разному. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:56 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецТехнически можно по-разному Зачем извращаться то? :-) Пытаться работать с UI в многопоточном режиме, если сама UI этого не поддерживает. Я всё пытаюсь добиться от ТС объяснения зачем ему это. Может, есть способ сделать правильнее ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 16:58 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79вопросецТехнически можно по-разному Зачем извращаться то? :-) Пытаться работать с UI в многопоточном режиме, если сама UI этого не поддерживает. Я всё пытаюсь добиться от ТС объяснения зачем ему это. Может, есть способ сделать правильнее Почему? Если у вас есть N потоков, в каждом из которых создана форма, можете обращаться легко и непринужденно из этого потока к соответствующей форме, можно и к другой форме но через InvokeRequired/Invoke например, работающий случай автора Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:04 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецЕсли у вас есть N потоков, в каждом из которых создана форма, можете обращаться легко и непринужденно из этого потока к соответствующей форме, можно и к другой форме но через InvokeRequired/Invoke Э, а нельзя сделать все формы в одном (основном) потоке, а из вторичных к ним обращаться "через InvokeRequired/Invoke"? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:07 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79, это уже совсем другая история и зависит от задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:10 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросец, приведенный код помог найти мне ошибку. выражаю благодарность. то есть в принципе все сделал правильно но в одном месте забыл написать в соответствии с последней идеологией (так как когда начинал писать она была другой). А кода было не 2 строки а немного побольше. Все пашет. Возможно все. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:10 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79вопросецЕсли у вас есть N потоков, в каждом из которых создана форма, можете обращаться легко и непринужденно из этого потока к соответствующей форме, можно и к другой форме но через InvokeRequired/Invoke Э, а нельзя сделать все формы в одном (основном) потоке, а из вторичных к ним обращаться "через InvokeRequired/Invoke"? можно, но иногда проще по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:11 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79, Например, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п.. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:14 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
единственное если кто на скору руку может напишите плиз правильный синтаксис создания делегата на лету, то есть чтото типа control.invoke(new delegate() { label.text = "4"; }); это лямбда, думаю понятно что имею ввиду, вроде так просто не работает. Щас буду искать как правильно написать но если напишите раньше то буду премного благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:16 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецArm79, Например, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п.. Это стандартная практика? Или ваше ноу-хау? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:23 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
FatherSql, Код: 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. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:27 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79, А в чем заключается ноу хау? Это стандартные тех возможности :). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:28 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецFatherSql, + Код: 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. 43. 44. 45. 46. 47.
это как раз геморойная запись, можно сразу на месте писать без промежуточного кода и лишних переменных ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:30 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецзаключается ноу хау? Это стандартные тех возможности :). Хм... Буду знать, что еще и так можно применять. Обычно я делал всё UI в основном треде, а из вторичных - нотификацию. Раньше это было через PostMesage. На Net никаких сложных интерфейсов не рисовал, всё как то в одном потоке помещалось :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:33 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вот так вот: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:35 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
FatherSql, Так прокатит? Invoke(new Action<string>(msg => { label1.Text = msg; }), new object[] { MSG }); ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:36 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Invoke(new Action(() => { label1.Text = MSG; })); ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:38 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецArm79, Например, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п.. пипец.... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:39 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Arm79вопросецзаключается ноу хау? Это стандартные тех возможности :). Хм... Буду знать, что еще и так можно применять. Обычно я делал всё UI в основном треде, а из вторичных - нотификацию. Раньше это было через PostMesage. На Net никаких сложных интерфейсов не рисовал, всё как то в одном потоке помещалось :-) угу где-то надо, где-то нет. от контекста зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:40 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Где-то в степивопросецArm79, Например, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п.. пипец.... однажды в студенную зимнюю пору, я из лесу вышел был сильный жара. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 17:44 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вобщем оказалось через invoke не работает как раз. Я сделал через сообщения виндовозные - так пашет, а через инвок выдает ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 19:16 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
вопросецНапример, есть у вас SCADA клиент, два монитора огромных и несколько окон, отображающих разные техпроцессы, и очень много изменений в единицу времени, отчего не взять да и не запилить по потоку на фурму, чтобы не конкурировали. И т. п.. больше 60 изменений в секунду - не перерисовать :) две панели - это ни о чём ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 20:13 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
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.
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.
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.
ps. lb ~ вопросец. компы разные. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 22:15 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Изопропил, я ляпнул абы че ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 22:17 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Lord British, ничего страшного ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2013, 22:20 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
Изопропилдве панели - это ни о чём Видимо вы ни разу не были на всяких ГПЗ и НПЗ, где стоят по три 22-24 монитора у каждого оператора :) Как правило, нормальные SCADA системы имеют свои GUI разработчики верхнего уровня. В крайнем случае можно прилепить и нечто универсальное типа InTouch и не изобретать велосипед :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 06:55 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
LameUser, может тебе рассказать как как контроллеры видеостен работают? 3-4 монитора на рабстанцию не требуют никаких программных извращений. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 07:42 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
ИзопропилLameUser, может тебе рассказать как как контроллеры видеостен работают? 3-4 монитора на рабстанцию не требуют никаких программных извращений. Странный ты, то говоришь что 2 ни о чем, то предлагаешь 3-4. Ты уж определись со своей позицией, либо я не так понял ход твоих мыслей из предложения Изопропилдве панели - это ни о чём Про контроллеры видеостен мне неинтересно (зачем мне знать как работает большой телевизор? - мне главное чтобы тех. процесс был автоматизирован правильно и был удобный эргономичный GUI для оператора), а через что будет смотреть оператор тех. процесса на картинку, и уж тем более каким образом формируется изображение на девайсе - мне без разницы. Я конкретно говорил про SCADу верхнего уровня, которая где-то здесь упоминалась в топике. Изопропил3-4 монитора на рабстанцию не требуют никаких программных извращений. Так я именно это и имел в виду, когда написал: LameUserКак правило, нормальные SCADA системы имеют свои GUI разработчики верхнего уровня. В крайнем случае можно прилепить и нечто универсальное типа InTouch и не изобретать велосипед :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 08:22 |
|
Создал форму не в главном потоке
|
|||
---|---|---|---|
#18+
LameUser, что сказать то хотел? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 08:27 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1405253]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 490ms |
0 / 0 |