我知道如何使用CreateProcess函数来运行进程或exe。我有一个奇怪的问题,我的程序在i2c通信过程中以某种方式停止。当我使用Telnet或使用CreateProcess命令运行任何测试程序时,它会再次开始工作。Wince - CreateProcess函数做什么
我不确定CreateProcess实际上在做什么。有没有人有这方面的知识?
感谢, Dnai
我知道如何使用CreateProcess函数来运行进程或exe。我有一个奇怪的问题,我的程序在i2c通信过程中以某种方式停止。当我使用Telnet或使用CreateProcess命令运行任何测试程序时,它会再次开始工作。Wince - CreateProcess函数做什么
我不确定CreateProcess实际上在做什么。有没有人有这方面的知识?
感谢, Dnai
CreateProcess
简单地推出一个新的可执行它,它自己的进程空间中的操作系统,可选在命令行参数发送。
它不会“做”其他任何事情。它对任何系统总线或驱动程序(如I2C)都没有影响。如果你的应用程序正在停止,那么这可能是一个计时问题或驱动程序错误。这当然不是CreateProcess
电话。
创建一个新进程可能会强制刷新缓存。如果您的驱动程序因为通过缓存指针访问I2C而停滞不前,那么强制刷新的操作将导致在下一个上下文切换时实际从设备读取数据,并允许您的进程继续运行。但这仅仅是一个猜测。
我同意你这绝对不是eCreateProcess调用。我想在这里理解的是为什么CreateProcess使系统从停止状态再次运行。它释放了一些memeory,即堆栈,堆等,还是可以释放互斥量,信号量。或者甚至它创建新的线程,所以它可能会导致一些线程重置等?我想知道它在它自己的进程空间中启动一个新的可执行文件时的真正作用。所以我可以用类似的方法解决我的暂停问题。 – MicroXP 2014-09-02 16:52:57