小编Ful*_*Int的帖子

IsKeyboardFocusable在Inspect Object中为true,但在我的应用程序中始终为false

我正在学习UI自动化,我发现我的"Inspect Object"克隆显示IsKeyboardFocusable即使是真的也总是假的,所有其他信息都是相同的(从图像中可以看出).有没有人知道为什么我在检索值时将此属性视为false?

在此输入图像描述

c# ui-automation winforms

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

使用free()时,内存使用量不会减少

我正在编写OS独立无锁队列,到目前为止它工作得很好,但内存管理存在小问题.我不确定它的gcc问题还是我的问题.问题:当元素添加到列表时,内存增加,但是当从列表中删除元素时(free(elementPointer);)内存使用不会改变.

但是当我使用pthreads时,N个生产者和M个消费者的 (1<N<20, 1<M<20)内存使用量总是大约10mb(当试图添加和删除~10kk元素时),所以看起来像免费工作.

而有趣的是,在VS 2010(相同的代码,没有线程)免费工作正常,内存被释放(观看任务管理器).

我做了测试,添加1kk元素,添加全部后,逐个删除所有元素(无线程).

Linux - 0.08秒

Windows~57秒

Linux(不含免费) - 0.07秒

Windows(不含免费) - 0.9秒

所以,问题是,为什么在没有使用线程的情况下,Linux C中没有释放内存?如有必要,我可以发布代码.

GCC版本:4.4.3

c linux multithreading pthreads

8
推荐指数
3
解决办法
2355
查看次数

在汇编程序OS独立的原子比较和交换

我正在编写独立于操作系统的无锁队列,队列工作正常(使用默认的windows\linux原子CAS),但我想让队列工作,而不需要在linux和windows中进行任何更改.所以我猜我应该在汇编程序中编写自己的CAS,还是有其他方法可以实现?

到目前为止,我有这个代码:

global _CAS

_CAS:

    mov eax, [esp+4]    
    mov edx, [esp+8]    
    mov ecx, [esp+12]   

    ;XCHG eax, edx  <- this function works fine
     CMPXCHG  ecx, eax, ebx 

    ret
Run Code Online (Sandbox Code Playgroud)

我知道我lock之前仍然需要添加CMPXCHG,它应该与结构一起使用,但是现在我对使它工作更感兴趣.

我用这个命令使用nasm-2.10.05进行编译nasm.exe -f elf -o cas.o cas.asm ,我得到了这个错误testas\cas.asm:14: error: invalid combination of opcode and operands

c linux windows assembly atomic

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

HttpWebRequest的响应不显示UTF-8符号

我有简单的代码来获取网站的响应,但有一个小问题.我试图从俄罗斯网站和一个网站得到回复我不知道的符号和其他我得到正常的文本.哪里可能有问题?

回复:www.kinopoisk.ru

......

回复:www.yandex.ru

Греция - Чехия.1:2 ...

    HttpWebRequest http = (HttpWebRequest) HttpWebRequest.Create("http://");
    http.Timeout = 30000;
    http.KeepAlive = true;
    http.ContentType = "application/x-www-form-urlencoded";
    http.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0";
    http.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
    http.Proxy = null;

    WebResponse response = http.GetResponse();
    Stream istream = response.GetResponseStream();
    StreamReader reader = new StreamReader(istream);

    Response.Write(reader.ReadToEnd());

    reader.Close();
Run Code Online (Sandbox Code Playgroud)

c# utf-8 httpwebrequest utf8-decode

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