Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.192.95.161] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток всем! Образовалась небольшая проблема, вернее огромное проблемище. Проект над которым я сейчас работаю, пишется под Windows 10 на C# Core 6 WPF. Представляет из себя многопоточное приложение с GUI на WPF, потоки собирают с оборудования данные и отдают сервисам на обработку. Под десяткой проблем нет, работает без проблем совершенно, но в одиннадцатой поделке мелкомягких дикие фризы, причем по ощущениям фризятся потоки с частым срабатыванием, например с частотой килогерц получающих простые данные и раздающих нуждающимся в этих данных. Фризы пропадают если запустить приложение в режиме совместимости с Windows 7, но начинаются необъяснимые краши, периодически сборщик мусора начинает уничтожать потоки, и именно те про которые я писал раньше. Не могу понять в чем дело и как это лечить. Если вдруг кто сталкивался, или знает, хотя бы предполагает как данную беду разрешить, прошу помощи.
ЗЫ: Проект собирать под Windows 11 пробовал, не помогает .... |
Сообщ.
#2
,
|
|
|
Pit-Bul, я в C# вообще не разбираюсь. Но у тебя похоже и, скажем так, "проблема общего плана". Попробуй прогнать свой проект в профилировщике, типа Visual Studio Profiler. Ну или что-то в этом роде. Надеюсь, что это позволит тебе выявить те узкие места в твоей проге, которые вызывают эти траблы.
|
Сообщ.
#3
,
|
|
|
Majestio, делал, выяснил только что GUI выжирает большую часть процессорного времени. В итоге немного удалось оптимизировать но по потокам это большого прироста не дало. Сегодня нашел тонкое место одно, сейчас будем тестировать как отдадут машину. Если сработает отпишусь тут в чем была проблема.
|
Сообщ.
#4
,
|
|
|
Цитата Pit-Bul @ Majestio, делал, выяснил только что GUI выжирает большую часть процессорного времени. Такое часто бывает, когда часть вычислений выносят в главный поток (в GUI), либо неграмотно выстраивают процессы ожидания/управления дополнительными потоками. Скорее всего дело где-то там. |
Сообщ.
#5
,
|
|
|
Majestio, в главном потоке нет вычислений, но много графики. Решил я вопрос, надо было собирать под Windows 11 используя SDK для Windows 11, а у меня в проекте был указан SDK для Windows 10, причем не самый последний. В итоге ломался таск который рисовал контрол один, в нем использовались Deprecated методы и Graphics из старых фреймворков ...
|