|
|
|
Как пользоваться таймером?
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте. Граждане, проясните меня пожалста по следующему вопросу: есть процедура в цикле, которая сильно загружает процессор, к примеру так: for(int i=0; i<=max; i++) {My Proc}; хотелось бы, чтобы на форме время от времени отображались какие-нить надписи, типа "Чичас выполняется нечто для шага i". Если в этот цикл просто засунуть строку this->mylbl->text="qwerty", то эта надпись, я так понимаю, просто не успевает отобразиться, т.к. все ресурсы компутера заняты процедурой. Соответственно нужно как то либо обновить форму, либо поставить какойнить таймер. Вот ток как это дело делается я никак не догоняю. Если ктонить знает как пользоваться таймером(у меня он почемуто никак не хочет выполнять свою непосредственную функцию) или что нить, что поможет моей проблеме - подскажите пожайлуста, буду очень благодарен(все происходит в Visual Studio на С++). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 16:14 |
|
||
|
Как пользоваться таймером?
|
|||
|---|---|---|---|
|
#18+
Если цикл действительно долгий, то вероятно его следует вынести в отдельную нить(поток, процесс). Ключевое слово Thread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 16:34 |
|
||
|
Как пользоваться таймером?
|
|||
|---|---|---|---|
|
#18+
enkaritoЕсли цикл действительно долгий, то вероятно его следует вынести в отдельную нить(поток, процесс). Ключевое слово Thread. Большое спасибо за совет. Но, млин, почитав про эту штуку и попробовав её на деле как то все не очень получилось :(. Ситуация следующая: у меня: build_index ind; //эт класс у меня такой. Кстати стоит(нужно?) ли делать переменную такого класса ссылкой, т.е. build_index^ ind. //далее, собственно идет цикл, примерно такого содержания while ((i<=10) && (b == false)){ bool b = ind.build(i); this->label->Text = "для " + i.ToString() + " нечто уже поделано"; i = i + 1; }; терь, что пишут в MSDN: ThreadStart^ threadDelegate = gcnew ThreadStart( MyVar, &MyClass::MyProc ); Thread^ newThread = gcnew Thread( threadDelegate ); Вопрос: как сопоставить "у меня" и "в MSDN". Просидел черт знает скока времени, да ниче не вышло. Если бы моя функция была void, да без параметров - то все вродь и проходит, ток хотелось бы подделать под вариант "у меня". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 22:21 |
|
||
|
Как пользоваться таймером?
|
|||
|---|---|---|---|
|
#18+
А если сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 07:07 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=295&tid=2028885]: |
0ms |
get settings: |
9ms |
get forum list: |
29ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 413ms |

| 0 / 0 |
