обработка событий при старте
От: yarus23  
Дата: 31.08.10 16:15
Оценка:
1. Если в self.ready вставить view.doEvent(#nowait); то из doEvent выполнение никогда не возвращается.
2. У tiscript::post написано в описании returns 'true' if scheduling of the call was accepted, 'false' when failure (VM has no dispatcher attached). Если из self.ready стартовать поток и в этом потоке сразу сделать post, то не доходит.
Можно было бы сделать так while( !tiscript::post() ) {}, но false не возвращается. Как можно в другом потоке гарантированно сказать что self.ready завершился, dispatcher работает и можно посылать сообщения?
Re: обработка событий при старте
От: c-smile Канада http://terrainformatica.com
Дата: 31.08.10 18:19
Оценка:
Здравствуйте, yarus23, Вы писали:

Y>1. Если в self.ready вставить view.doEvent(#nowait); то из doEvent выполнение никогда не возвращается.


Пробую так:
<html>
<head>
  <style></style>  
  <script type="text/tiscript">
    function self.ready()
    {
      view.doEvent(#nowait);
      stdout.println("*");
    }
  </script>  
</head>
<body>
</body>
</html>


и проблемы не вижу.

Y>2. У tiscript::post написано в описании returns 'true' if scheduling of the call was accepted, 'false' when failure (VM has no dispatcher attached). Если из self.ready стартовать поток и в этом потоке сразу сделать post, то не доходит.


Сделать post кому? И что конкретно "не доходит" ?

Y>Можно было бы сделать так while( !tiscript::post() ) {}, но false не возвращается. Как можно в другом потоке гарантированно сказать что self.ready завершился, dispatcher работает и можно посылать сообщения?


Что такое "поток" в данном случае? GUI thread или worker thread?
Re[2]: обработка событий при старте
От: yarus23  
Дата: 01.09.10 06:02
Оценка:
CS>и проблемы не вижу.

Да, работает.

Y>>2. У tiscript::post написано в описании returns 'true' if scheduling of the call was accepted, 'false' when failure (VM has no dispatcher attached). Если из self.ready стартовать поток и в этом потоке сразу сделать post, то не доходит.


CS>Сделать post кому? И что конкретно "не доходит" ?


tiscript::post(vm, process_callback, ci);
из worker thread в GUI thread.

Y>>Можно было бы сделать так while( !tiscript::post() ) {}, но false не возвращается. Как можно в другом потоке гарантированно сказать что self.ready завершился, dispatcher работает и можно посылать сообщения?


CS>Что такое "поток" в данном случае? GUI thread или worker thread?


worker thread.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.