一个包装硬件功能

<p>我正在开发一个项目,我不得不做出一个包装一些硬件功能。 P&gt; </p><p>我们必须写入和读取数据和从非易失性存储器。我有读库和写入从卖方公司的职能。的问题是,这些功能应该被称为每次呼叫之间的延迟由于硬件特性。 P&gt; </p><p>所以我的解决办法是启动一个线程,做一个队列,使我自己的读写功能。所以每我的函数被调用时,该数据将被存储在队列,然后在循环线程将实际读出或写入到存储器。我的功能将使用一个互斥体同步进入队列。我的包装将是一个DLL。主模块将调用我的DLL初始化函数一次启动线程,然后它会调用我的读/从不同的线程写入的功能很多次了。 P&gt; </p><p>我的问题是:是否安全做到这一点?原来的功能是不可重入的。我不知道这将是一个问题。有没有更好的方式来做到这一点? P&gt; </p><p>任何帮助将不胜感激。 P&gt; </p><hr/><p>对不起,我忘了什么事: P&gt; </p><p>使用-The语言是C ++ P&gt; </p><p> -The主程序会打电话给我包装DLL,而且会调用其他模块(DLL)中的要调用的包装DLL。 P&gt;
</p>

53 浏览 1 回复
  一个   gt   功能   调用   线程  

回复

    <p>添加在这种背景下,调解员是一个非常典型的解决方案,这样你就不会在杂草在这里。我会说你将需要实现这个的<em>,因为 em&gt;的原有功能是不可重入。假设,当然,前提是你自己的访问硬件。 (即你是司机。)如果其他人可以访问相同的硬件,那么你将不得不拿出一些更高级别的合同。你的线程然后提供给司机的有序访问。你会发现,调解员也将让你油门。 P&gt; <p>这似乎是知道什么时候它是好的,使该设备的下一次调用困难的部分。是否有某种标志,让你知道它已准备好进行读写操作?其他一些问题:你打算如何进行沟通状态,你的客户?既然你提供的是异步接口,你需要有某种错误回调注册等看看一个正常的异步驱动程序界面的想法。 P&gt; </p><p>但总体而言,听起来像是一个很好的策略开始。作为另一个海报所说,更多的细节将是很好。 P&gt;
    </p></em></p>

    陆策

相关提问


友情链接: