2017-07-22 17 views
0

私はC言語でライブラリ関数を作成しました。これは、ユーザーインターフェイスアプリケーションを介してユーザーがアクセスします。今私は、ライブラリ関数によって使用される独立したモジュールを作成する必要があります。そして、ライブラリ関数を呼び出すと、新しい関数(独立したモジュール)も並行して実行するか、並行して実行する必要があります。ライブラリ関数の作成

+0

既に 'alarm()'を見たことがありますか? – alk

+0

私はtime.hのclock関数を使用しています。タイマーはマイクロ秒またはミリ秒で表します。 – Sona

+0

POSIXの場合、 'timer_create()'とFriends – alk

答えて

0

alarm()を使用してSIGALRMシグナルをトリガーし、を使用してSIGALRMハンドラーを設定してからalarm()を呼び出すことができます。

指定した秒数が

あなたはマイクロ秒レベルでタイマーを必要とする場合にualarmを使用することができます

を経過した後に

シグナルハンドラが呼び出されます

編集:@alk ualarmで述べたように、それは廃止とマークされ、あなたをタイマーの作成と設定にtime_createファミリーファンクションを使用できます

+0

'ualarm()'はPOSIX.1-2001によって廃止とマークされています。 – alk

1

UIアプリケーション用のポータブルライブラリを作成するのは非常に難しいです。 OSとUIフレームワークに依存します。

Posixタイマー(timer_create)はプロセスごとのタイマーです。 UIフレームワークや他のライブラリと互換性がない可能性があります。現代のUIフレームワークの大部分は(ほとんど)ミリ秒の解像度でタイマーを組み込んだイベント駆動型なので、私はUIフレームワークを利用することを提案します。タイマーコールバックはmainloopが動作する(メイン)スレッドで呼び出されます。

私は2つのアプローチを想像することができます。新しいUIフレームワークに会った時はいつでもあなたが同じインターフェイスの新しい実装を追加することがあり 各UIフレームワークの

  1. 書き込みタイマーLIB。私はあなたが1つか2つしか必要でないと確信しています。
  2. 依存関係の反転インターフェイスを持つタイマーライブラリを作成します。 one_shot_timer_start_callback、periodic_timer_start_callbackなどのコールバックのセットでタイマーAPIを設計することができます。設計意図は、アプリケーションがこれらのコールバックでlibを初期化する責任を負うことです。 UIフレームワークごとにサンプルコールバックを設定できます。

いずれの場合も、UIフレームワークコンテキスト(またはビュー)でlibを初期化する必要があります。

+0

ありがとうございます:)とても役に立ちます。 – Sona

関連する問題