Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Net] Управление C# GUI-ями из I/O- потока. 28.12.05 04:53 Число просмотров: 2137
Автор: void <Grebnev Valery> Статус: Elderman
|
Несложная задача, которая концептуально выглядит следующим способом:
Из «первичного» потока GUI – приложения C# создаётся поток (ioThread), который отправляет данные. Поток ioThread «шлёт проценты» выполнения io-задачи GUI. Последний отображает этот процесс в одном из своих окон (например, неком ProgressBar).
Некоторое сомнение связано с тем, что для того, чтобы «послать проценты», одна из функций ioThread вызывает public метод (пусть, showProgress( long bytesOut) ) GUI объекта, который и создал ioThread .
GUIobject -> > Create ioThread ->> loop … GUIobject.showProgress( bytesOut) … endloop & exit ioThread .
При посылке «процентов», showProgress ( bytesOut) не изменяет общих данных потоков, что могло бы привести к их десинхронизации. В принципе, особых сомнений нет (возможно от недостаточности знания предмета), но может всё же делать приостановку ioThread после вызова GUIobject.showProgress( bytesOut); Thread.Sleep(10), или вообще посылать (SendMessage) сообщение окну GUI.
В общем, работать–то работает. А, может, делает вид, что работает?
Спасибо за советы и мнение.
ПС. С наступающим Новым Годом, братцы. Всем большой зарплаты и радости в новом году.
|
- [Net] Управление C# GUI-ями из I/O- потока. - void 28.12.05 04:53 [2137]
|
|
|