xtang,问你一个关于时间的问题

如果我的程序从某一时间点开始,我只允许它运行n毫秒,这个函数该怎么写,用到了哪些qnx的函数。谢谢。

如果“只允许运行n毫秒”,那么n毫秒后这个程序怎么办了呢?谁又占用CPU呢?

理论上,你可以设一个n毫秒的时钟(timer_create()/timer_set()),让时钟到时,用一个SIGEV_SIGNAL来通知你。你可以在你的Signal Handler里面决定你要做什么。

你也可以另外写一个程序,它占有最高优先级,delay(n),然后做你需要的处理。在delay()时,它放弃CPU进入睡眠态,你的工作进程可以占用CPU,当它从delay()醒过来后,应为它在最高优先级,所以效果上,你正在执行的程序每隔n毫秒会被它抢占。

在实践上,“只运行n毫秒”是一个比较奇怪的要求。你如果可以讲讲具体你要实现什么,或许有别的解决方法。

是这样的,现在有两块板子,一块发送一块接收,发送完中断,另一块接收,但是第一块板子可能是坏的,也就是说发送完的中断永远产生不了,那第二块板子就永远等待了,为了避免这种情况,第二快板子只等待一段时间,过了这段时间就表明有错误发生了。大概就是这个样子。

还有个问题想请教您,我现在有个下拉菜单,还有一个TEXT,现在我想
1,在下拉菜单中选中一项(比如第2项)
2,在TEXT中输入一个数值
3,点击按钮,这样TEXT中的数值就取代了下拉菜单中原来的第二项
就是改变下拉菜单中的第i项,怎么改变。
用PtSetResource怎么做?请唐先生不吝赐教。谢谢。

这个过程中有几点我不明白,text中的数值是char型的,那么我在下拉菜单中选中的值是什么类型的,还有到底怎么改变下拉菜单中的某一项,谢谢唐。

还有个问题,如果我在TEXT中什么都不添,也就是说text中是空的,那我用ptgetresource()取得的是什么?是0?还是。。。。

是这样的,现在有两块板子,一块发送一块接收,发送完中断,另一块接收,但是第一块板子可能是坏的,也就是说发送完的中断永远产生不了,那第二块板子就永远等待了,为了避免这种情况,第二快板子只等待一段时间,过了这段时间就表明有错误发生了。大概就是这个样子。

你的问题就变成了,“一个程序会等待特定的事件,怎样限制让它只等待指定的时间”。

取决于你的“等待”是什么。可以用时钟,传回一个pulse;或是传回一个signal。也可以用 TimerTimeout()。还有一些阻塞的函数自己就带有时间。(select()…)都可以用。

还有个问题,如果我在TEXT中什么都不添,也就是说text中是空的,那我用ptgetresource()取得的是什么?是0?还是。。。。

如果我记得对的话,所有的地方都是 char *。

unsigned long flags;
PtWidget_t widget;
PtGetResource( widget, Pt_ARG_FLAGS, &flags, 0 );
flags是一个指针,而&flags就是地址的地址,怎么这样?那我取处的数值是在
flag?还是
(*flag)?还是就是flag?还有怎么改变下拉菜单的项,您还没说呢。呵呵。

现在我有一个下拉菜单,下拉菜单事先里面有n个选项,还有一个TEXT,还有一个按钮,
1。我先在下拉菜单中选择一项。
2。往text里面添一个数。
3。点击按钮,text里的数就取代了下拉菜单中选中的那一项。
比如说我做的是个籍贯的选择器,事先有北京,上海,武汉三个选项了,我先在下拉菜单,就是那个PtComobox里面选择北京,在text里面填入济南,点击按钮,北京被换成济南了。text就是控件PtText.
唐,我是个极品菜鸟,请你讲详细点,特别是怎么改变下拉菜单,也就是PtComobox中的第i项。谢谢。