2

クローズド ソースのサード パーティ ライブラリとスレッドの一時停止に問題があります。このサード パーティ ライブラリを使用しているときにスレッドを一時停止できません。

OSはUbuntu 32bitです。コンパイラはg++です。

以下の次のコードは簡単で、正常に動作します。

#include <chrono>
#include <thread>

int main()
{
    std::chrono::seconds duration(3);
    std::this_thread::sleep_for(duration);
}

私はそれをコンパイルしました:

g++ -std=c++0x test1.cpp -o test1

さて、このサードパーティ ライブラリ (AVT の GigE ビジョン デバイス用の「PvApi」) と次のコードがあります。

#include <chrono>
#include <thread>
#include <PvApi.h>

int main()
{
  PvInitialize();

  std::chrono::seconds duration(3);
  std::this_thread::sleep_for(duration);
}

私はそれをコンパイルしました:

g++ -std=c++0x -D_x86 -D_LINUX -D_REENTRANT test2.cpp -lPvAPI -o test2

コードを実行すると、実際に実行されます。ナノ秒も一時停止しません。どうして???

ヒントをありがとう!

4

2 に答える 2

-1

PvInitialize が OS によって送信されるシグナルを処理することは可能ですか?これにより、プロセスのスリープが停止します。

于 2012-12-13T17:33:17.293 に答える