小编P.S*_*.S.的帖子

C++可以在结构中声明原子变量来保护这些成员吗?

在共享文件中声明和定义结构.

Windows API创建的两个线程CreateThread()都可以看到它的实例:

struct info
{
    std::atomic<bool> inUse; 
    string name;

};
info userStruct; //this guy shared between two threads
Run Code Online (Sandbox Code Playgroud)

线程1连续锁定/解锁以写入结构中的成员(测试的值相同):

    while (1)
    {
        userStruct.inUse = true;
        userStruct.name= "TEST";
        userStruct.inUse = false;
    }   
Run Code Online (Sandbox Code Playgroud)

线程2 只是读取和打印,只有它碰巧解锁它

    while (1)
    {
        while (! userStruct.inUse.load() )
        {
            printf("** %d, %s\n\n", userStruct.inUse.load(), userStruct.name.c_str());
            Sleep(500); //slower reading
        }

        printf("In Use!\n");
    }
Run Code Online (Sandbox Code Playgroud)

期待看到很多:

"正在使用!"

如果它进入,每次一次,解锁时:

"0,TEST"

..它确实如此.

但也看到:

" 1,测试"

如果原子布尔为1,我不希望看到它.

我究竟做错了什么?

c++ windows multithreading atomic

3
推荐指数
2
解决办法
411
查看次数

如何测试中断延迟?

Windows Embedded Compact 7.

有没有办法从用户空间测试中断延迟时间?

是否有任何工具作为平台构建器的一部分提供?

我还看到了一个名为Intrtime.exe的程序 - 但没有关于如何使用它的示例.

如何测试中断延迟时间?

参考Intrtime.exe,但我该如何实现它?
http://www.ece.ufrgs.br/~cpereira/temporeal_pos/www/WindowsCE2RT.htm

编辑
还发现:

ILTiming.exe实时测量工具(Compact 2013)

http://msdn.microsoft.com/en-us/library/ee483144.aspx

c c++ windows embedded windows-ce

1
推荐指数
1
解决办法
753
查看次数

如何声明大型2D阵列会导致程序崩溃?

Windows Embedded Compact 7.

从USB驱动器运行16KB应用程序.

在main中我有function1()和function2();

Function1()运行并打印出一些信息就好了.

然后程序就死了.

(返回命令提示符(pocket cmd v 7.00).)

Function2在顶部包含一个声明.这是在计算中使用的二维二进制数组,实际上是在当时注释掉的.

function2()
{

    LARGE_INTEGER li;   
    double time[PRIORITY_LEVELS][ITERATIONS]; // 256 X 1000
    double difference[ITERATIONS - 1] = {0};
Run Code Online (Sandbox Code Playgroud)

没有意义的部分:
我注释掉2d数组的声明(删除它) - 程序将正确运行function2()的其余内容.

这可能是什么问题,或者我怎么会发现?

我有8GB的RAM.对于256X1000 8字节双倍来说,这应该足够了吧?

任何帮助表示赞赏.

c c++ window windows-ce

0
推荐指数
1
解决办法
1224
查看次数

在一串其他字符中查找数字的最有效方法是什么?

任意长度的3个数字的字符串 - 嵌入在空格和制表符中,下面用\t标记表示:

123456789 \t 12345 \t6789\n
Run Code Online (Sandbox Code Playgroud)

数字之间可以有任何空间和标签的数量和组合.

例如,这也是有效的:

1    \t \t2\t\t\t\t\t \n3\n  
Run Code Online (Sandbox Code Playgroud)

提取3个数字的最有效方法是什么?

看看sscanf()但似乎需要字符串的确切格式,这是正确的吗?

谢谢.

c linux string algorithm parsing

0
推荐指数
1
解决办法
77
查看次数

标签 统计

c ×3

c++ ×3

windows ×2

windows-ce ×2

algorithm ×1

atomic ×1

embedded ×1

linux ×1

multithreading ×1

parsing ×1

string ×1

window ×1