问题列表 - 第16439页

在PyQt中使用Windows 7任务栏功能

我正在寻找有关将一些新的Windows 7任务栏功能集成到我的PyQt应用程序中的信息.

具体来说,如果已经存在使用新进度指示器(参见此处)和快速链接(www.petri.co.il/wp-content/uploads/new_win7_taskbar_features_8.gif)的可能性.

如果有人可以提供一些链接或只是"尚未实现",我将非常感激.

非常感谢.

python taskbar pyqt pyqt4 windows-7

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

等待分离的线程在C++中完成

我怎么能等待分离的线程在C++中完成?

我不关心退出状态,我只是想知道线程是否已经完成.

我正在尝试围绕异步的第三方工具提供同步包装器.问题是涉及回调的奇怪的竞争状态崩溃.进展如下:

  1. 我打电话给第三方,并注册一个回调
  2. 当第三方完成时,它通知我使用回调 - 在一个分离的线程中,我没有真正的控制权.
  3. 我希望(1)中的线程等到(2)被调用.

我想在一个提供阻塞调用的机制中包装它.到目前为止,我有:

class Wait {
  public:
  void callback() {
    pthread_mutex_lock(&m_mutex);
    m_done = true;
    pthread_cond_broadcast(&m_cond);
    pthread_mutex_unlock(&m_mutex);
  }

  void wait() {
    pthread_mutex_lock(&m_mutex);
    while (!m_done) {
      pthread_cond_wait(&m_cond, &m_mutex);
    }
    pthread_mutex_unlock(&m_mutex);
  }

  private:
  pthread_mutex_t m_mutex;
  pthread_cond_t  m_cond;
  bool            m_done;
};

// elsewhere...
Wait waiter;
thirdparty_utility(&waiter);
waiter.wait();
Run Code Online (Sandbox Code Playgroud)

据我所知,这应该有效,而且通常会有效,但有时它会崩溃.至于我可以从corefile中确定,我对这个问题的猜测是这样的:

  1. 当回调广播m_done的结束时,等待线程唤醒
  2. 等待线程现在在这里完成,Wait被破坏.Wait的所有成员都被销毁,包括互斥锁和cond.
  3. 回调线程尝试从广播点继续,但现在使用已释放的内存,这会导致内存损坏.
  4. 当回调线程试图返回时(高于我糟糕的回调方法的级别),程序崩溃(通常使用SIGSEGV,但我已经看过几次SIGILL).

我尝试了很多不同的机制来尝试解决这个问题,但没有一个能解决问题.我仍然偶尔看到崩溃.

编辑:更多细节:

这是大规模多线程应用程序的一部分,因此创建静态等待是不切实际的.

我运行了一个测试,在堆上创建Wait,并故意泄漏内存(即Wait对象永远不会被释放),这导致没有崩溃.所以我确定这是等待太快解除分配的问题.

我也尝试过sleep(5)在解锁后进行测试wait,并且也没有发生崩溃.我讨厌依靠这样的kludge.

编辑:ThirdParty详细信息:

我一开始并不认为这是相关的,但我想的越多,我认为这就是真正的问题:

我提到的第三方的东西,以及为什么我无法控制线程:这是使用CORBA.

因此,CORBA可能会比我预期的更长时间地保持对对象的引用.

c++ multithreading corba pthreads

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

在nil的情况下分配替换值

我有几个变量:

name
age
address
phone
social_security
email
weight
Run Code Online (Sandbox Code Playgroud)

并且personal_details在0-6位置使用这些值中的每一个调用一个数组.

所以我分配这样的值:

name = personal_details[0]
address = personal_details[1]
phone = personal_details[2]
social_security = personal_details[3]
email = personal_details[4]
weight = personal_details[5]
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,右侧的数据不存在.

除了为数组中的每个元素写这样的东西之外,有什么更优雅的方法来处理这个问题?

if !personal_detail[0].nil?
 name = personal_details[0]
else
 name = ""
end
if !personal_detail[1].nil?
 address = personal_details[1]
else
 address = ""
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何发出代码并将其注入加载的程序集?

我使用System.CodeDom.CodeCompileUnit动态构建了一些类型,想要将它们编译成内存中的IL代码,并将该IL代码注入到内存中加载的程序集中 - 不需要将任何内容保存到磁盘中.也许我说的计划是错的.打开有关如何将CodeCompileUnit实例添加到所述目标的其他建议.

.net c# reflection.emit

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

如果新的尺寸更小,可以realloc移动指针吗?

我想知道当使用较小(非零)大小调用realloc时,C或C++标准是否保证指针不会更改:

size_t n=1000;
T*ptr=(T*)malloc(n*sizeof(T));
//<--do something useful (that won't touch/reallocate ptr of course)
size_t n2=100;//or any value in [1,n-1]
T*ptr2=(T*)realloc(ptr,n2*sizeof(T));
//<-- are we guaranteed that ptr2==ptr ?
Run Code Online (Sandbox Code Playgroud)

基本上,操作系统可以自行决定,因为我们释放了大量内存块,他想利用所有realloc来对内存进行碎片整理,并以某种方式移动ptr2?

c realloc

11
推荐指数
4
解决办法
4633
查看次数

为什么这个`grep -o`失败了,我该如何解决呢?

鉴于输入

echo abc123def | grep -o '[0-9]*'
Run Code Online (Sandbox Code Playgroud)

在一台计算机上(使用GNU grep 2.5.4),这将返回123,而在另一台计算机上(使用GNU grep 2.5.1),它返回空字符串.有没有解释为什么grep 2.5.1在这里失败,或者它只是一个错误?我grep -o在这个方式中使用bash脚本,我希望能够在不同的计算机上运行(可能有不同版本的grep).是否有"正确的方法"来获得一致的行为?

regex bash grep

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

定点反正弦

有没有人知道(最好是快速)计算4.12固定点角度正弦的方法?(结果是一个圆或度的32768ths)

4.12定点意味着数字是16位并且左移12,所以1.0变为(1 << 12)或4096. 0.5是(0.5 << 12)== 2048等.

algorithm trigonometry fixed-point

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

使用一种形式的控制到另一种形式

我有一个应用程序,在一个形式(Form1)我有很多checkBoxes和textBoxes,Form2我只有一个textBox ,但我想从Form1textBoxes中放入一些内容并放在textBox中Form2,像这样,但在表单之间:

textBox1.Text = "Test: " + textBox1 + "\n" + textBox3;
Run Code Online (Sandbox Code Playgroud)

由于textBox1Form2与第二textBox1textBox3Form1,但我怎么能这样做呢?谢谢.

c# oop winforms

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

VB:只允许数字(不是字母)输入文本框

我有一个控制Timer控件间隔的文本框.如何过滤掉字母?是否可以限制只输入数字(如果输入字母或空格,没有任何反应)?是否有文本框的属性可以实现此目的?谢谢!

vb.net textbox filtering winforms

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

适用于Mac的原生Python编辑器?

我目前正在使用IDLE,它很不错,但我想知道是否有更好的轻量级IDE专为Mac而构建 - 免费或商业.

python ide macos editor python-idle

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