创建库函数

时间:2017-07-22 12:10:38

标签: c

我在C ..中创建了一个库函数,用户可以通过用户界面应用程序访问它。现在我需要创建一个将由库函数使用的独立模块。当我调用任何库函数时,新函数(独立模块)也应该并行或并发运行。

2 个答案:

答案 0 :(得分:1)

为UI应用程序编写可移植库非常困难。它依赖于OS和UI框架。

Posix计时器(timer_create)是每个进程计时器。它可能与您的UI框架或其他库不兼容。我建议使用UI框架,因为大多数现代UI框架都是事件驱动的,内置计时器(大部分)毫秒分辨率。在mainloop运行的(主)线程中调用定时器回调。

我可以想象两种方法。

  1. 为每个UI框架编写计时器lib 每当遇到新的UI框架时,您都可以添加相同接口的新实现。我敢打赌你只需要一两个。
  2. 使用依赖性反转接口编写计时器lib。 您可以使用一组回调设计计时器API,例如one_shot_timer_start_callback,periodic_timer_start_callback等。设计意图是app有责任使用这些回调初始化lib。 您可以为每个UI框架提供示例回调集。
  3. 在这两种情况下,您必须使用UI框架上下文(或View)初始化lib。

答案 1 :(得分:0)

您可以在调用alarm()之前使用SIGALRM触发SIGALRM信号并使用signal()设置alarm()处理程序。

将在经过指定的秒数后调用信号处理程序

如果您需要微秒级别的计时器,您可以使用ualarm

编辑:如@alk ualarm所述,它被标记为已过时,您可以使用time_create族函数来创建和设置计时器