Articles of 进程

closures应用程序和结束从任务pipe理器的过程有什么区别?

使用closuresbutton查杀应用程序和从任务pipe理器结束进程之间有什么区别? 我知道点击closuresbutton在消息队列中发送WM_CLOSE消息的事实,但我不知道当我们从任务pipe理器(或任何类似的应用程序,如Killbox或Process Explorer)终止进程时会发生什么。

如何让Python使用Assembly

我是一名汇编初学者,但是是Python的高手。 我刚刚开始学习x86_64 NASM for windows,我希望结合汇编的强大function和Python的灵活性。 我已经看遍了,我还没有find一种在Python中使用NASM汇编程序的方法。 通过这个我不是说在线汇编。 我希望编写一个汇编程序,编译它,然后以某种方式提取在我的Python程序中使用的过程。 有人可以举例说明如何做到这一点,因为我完全失去了。

Python多处理stdininput

所有代码在python 3.4 windows 7上编写和testing。 我正在devise一个控制台应用程序,并且需要使用命令行(win os)的stdin来发出命令并更改程序的操作模式。 程序依靠多处理来处理cpu绑定的负载,并传播到多个处理器。 我使用stdout来监视这个状态和一些基本的返回信息,stdin根据返回的控制台信息发出命令来加载不同的subprocess。 这是我发现问题的地方。 我不能让多处理模块接受stdininput,但stdout工作得很好。 我认为在栈上find了以下的帮助所以我testing了它,发现使用线程模块,这一切都很好,除了所有的输出到标准输出都暂停,直到每次标准input由于GIL锁使用标准input阻塞循环。 我会说我已经用msvcrt.kbhit()实现了解决scheme。 然而,我不禁要问,在多处理function中是否有某种错误使stdin不能读取任何数据。 我尝试了很多方法,并且在使用多处理时没有任何工作。 即使尝试使用队列,但我没有尝试池,或从多处理的任何其他方法。 我也没有尝试在我的Linux机器上,因为我专注于试图让它工作。 这里是简化的testing代码,不能按预期工作(提醒这是用Python 3.4 – win7编写的): import sys import time from multiprocessing import Process def function1(): while True: print("Function 1") time.sleep(1.33) def function2(): while True: print("Function 2") c = sys.stdin.read(1) # Does not appear to be waiting for read before continuing […]

从线内分叉是否安全?

让我解释一下:我已经在Linux上开发了一个应用程序,它分叉和执行外部二进制文件并等待它完成。 结果由fork +进程独有的shm文件传递。 整个代码封装在一个类中。 现在我正在考虑线程化,以加快速度。 具有许多不同的类函数实例,并发地(使用不同的参数)分离和执行二进制文件,并与自己的独特的shm文件交stream结果。 这个线程安全吗? 如果我在一个线程内分叉,除了安全之外,还有什么我需要注意的吗? 任何意见或帮助,非常感谢!

我可以发送一些文本到Windows下的活动进程的STDIN?

我在网上search了这个问题,并登陆到服务器故障: 我可以发送一些文本到屏幕会话中运行的活动进程的STDIN吗? 看起来好像在Linux下实现这个很容易。 但我需要一个Win32命令提示符。 背景:我有一个应用程序轮询STDIN,如果我按下X键,应用程序终止。 现在,我想做一些自动testing,testing应用程序,然后closures它。 注意 :因为我正在调查在我的应用程序closures期间出现的问题,所以只是杀死进程不是一个选项。

.Net WinForm系统在64位操作系统上发出哔声

当validation失败时,我的应用程序需要发出嘟嘟声,因此用户(可能在几英尺之外)可能会听到它。 我想使用Console.Beep()但在x64环境中不可用(请参阅备注) 。 计算机中/上可能有或没有扬声器,因此我无法使用System.Media.SystemSounds.Beep.Play() 。 目前的目标平台是x86环境,但是我希望应用程序能够在x64上运行。 有没有办法做到这一点,或者我应该放弃? 编辑 :添加到该方法的链接。

如何将窗口放在通过CreateProcess创build的进程之上

我正在使用CreateProcess API从我的应用程序启动一个进程,并且希望将新进程的窗口置顶。 有没有办法做到这一点? 我们有CreateProcess的标志或类似的东西吗?

WndProc中的64位exception会自动失败

在Windows 7 32位下运行时,以下代码会导致严重失败: void CTestView::OnDraw(CDC* /*pDC*/) { *(int*)0 = 0; // Crash CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: add draw code for native data here } 但是,如果我在Windows 7 64bit上尝试这个,我只是在输出窗口中得到这个: Test.exe中0x13929384的第一次机会exception:0xC0000005:访问冲突写入位置0x00000000。 Test.exe中0x77c6ee42的第一次机会exception:0xC0150010:当前正在执行的线程未激活正在激活的激活上下文。 这是什么原因? 我知道这是一个硬件exception( http://msdn.microsoft.com/en-us/library/aa363082.aspx ),但为什么在32位和64位下运行的差异呢? 我能做些什么来正确处理这些错误? 因为它们应该真正被困住和修复,而不是正在发生什么,Windows正在进行向应用程序发送消息,让它运行(所以用户和开发人员完全不知道实际发生的任何问题)。 更新:我们的常规崩溃报告软件使用SetUnhandledExceptionFilter但不会在x64中调用WndProc中的硬件exception。 有没有人有任何这方面的信息,或解决方法? Update2:我已经在Microsoft Connect上报告了这个问题: https://connect.microsoft.com/VisualStudio/feedback/details/550944/hardware-exceptions-on-x64-machines-are-silently-caught-in-wndproc-messages

将命令添加到cmd历史logging

我试图在Windows CMDterminal内运行控制台程序。 有用。 但我运行的程序没有添加到历史。 String[] command = {"cmd.exe", "/C", "\"start cmd.exe /K \"" + commandLine + "\"\""}; ProcessBuilder builder = new ProcessBuilder().command(command); start = builder.start(); 我想增加用户的能力,最近很容易重新运行这个程序。 有没有办法将命令添加到cmd.exe历史logging?

Python多处理不断产生pythonw.exe进程,而不做任何实际的工作

我不明白为什么这个简单的代码 # file: mp.py from multiprocessing import Process import sys def func(x): print 'works ', x + 2 sys.stdout.flush() p = Process(target= func, args= (2, )) p.start() p.join() p.terminate() print 'done' sys.stdout.flush() 不断创build“pythonw.exe”进程,即使我从命令行运行它也不会打印任何东西: python mp.py 我在32位和64位的Windows 7上运行最新的Python 2.6