• D语言中的静态构造函数使用时需要注意的事情


             我在使用DGUI时发现,application.d的enableManifest在使用程序开启多线程后会出一个异常,该异常发生在std.file.write(temp, xpManifest);处。 经调试发现,这是因为程序开启多线程后(不管你的线程中有没有使用DGUI的Application),D语言中的每一个线程都会调用静态构造函数来初始化自己的全局数据。导致同时写manifest文件异常。

            需要在构造函数中加入函数调用同步锁。

    public static this()
    {
        synchronized   //多线程问题,需要同步
        {
                Application.enableManifest(); //Enable Manifest (if available)
       }
    }

           这在移植其它C/C++的库时也需要注意。

  • 相关阅读:
    css(一)
    Html table
    Html
    jQuery事件和效果
    jQuery基础
    ajax和http状态码
    点击数组选中某一项,存入数组,再次点击删除
    单行两行,多余显示省略号
    git的使用
    产生滚动效果
  • 原文地址:https://www.cnblogs.com/wanhongnan/p/5810504.html
Copyright © 2020-2023  润新知