English 中文(简体)
可以处理。 等待输入失败返回吗?
原标题:Can Process.WaitForInputIdle() return false?
  • 时间:2012-05-22 22:30:40
  •  标签:
  • .net

我无法看到进程 。 WaitForInputIdle () 可以返回任何真实的东西, 或者抛出一个例外, 但是在 文件 中,

<强 > 返回值

类型:系统. Boolean

相关进程已进入空闲状态 。 @ info: whatsthis

如果这让我困惑的话,那就是只有来自overloaded version 的版本, 用于具有等待参数或我不懂的方法?

<强> UPDATE

为了澄清我的问题, 我知道程序是如何运作的。 等待ForInputIdle (), 如果它在某些条件下可以返回假的, 实在是令人羡慕 。

最佳回答

我认为这可能是一个操作系统兼容性问题。 不确定, 我不再有 Windows 98 的可靠文档。 关键的问题是它将本地 Winapi < a href=" http:// msdn. microsoft. com/ en- us/ library/ windows/ desktop/ ms68702222% 28v=vs. 85%29. aspx" rel = "nofollow" > WaitFinputIdle () 函数 < / a >, 传递 int. MaxValue ( 0x7ffffffffffffffff), 而不是 ININITITE (-1) 。 因此这个电话实际上可以在24. 85天后暂停 。

此限制出现在不止一个地方, 系统. windows. automation. provvider. wait forInputIdle( int) 方法也指定了 maxValue 的最大值 。

所以是的,如果你被假冒了 你的节目已经睡了25天了。该停止了:)

问题回答

WaitForInputIdle () 简单调用 WaitForInputIdle(int millic seconds) ,这又称为本地 WaitForInputIdle ,在用户32.dll中实施。 后的 return WAIT_TIMEOUT ,如果由于时间间隔已过而终止等待,导致网络返回 /code。

EDIT: passed 0x7ffffffff to waitForInputIdle(int 毫秒) ,与INININIDITE( WinBase.h 中定义为 0xffffffffffffff) 相同。 因此,如果一个进程在大约25天内没有进入闲置状态, 那么, waitForInputIdle () 将返回错误 。

如果您提供非超载, 您将无限期地等待它闲置 。

如果您提供 process. waitForInputIdle( 0) 您基本上是在测试闲置的过程 。

如果您提供 process. waitForInputIdle(-1) 与未超载版本相同 。

在 UI 启动期间, 有很多消息会传进来 。 如果您在测试应用程序中推翻 WndProc, 您可以看到它们流过 。

EDIT: Seeing as you edited question.

如果您指定 WaitFInputIdle( 0 或非无限超时)( i 测试), 且该应用程序在此时间内没有闲置, 那么您就会得到假的 Afaik 。





相关问题
Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How do I compare two decimals to 10 decimal places?

I m using decimal type (.net), and I want to see if two numbers are equal. But I only want to be accurate to 10 decimal places. For example take these three numbers. I want them all to be equal. 0....

Exception practices when creating a SynchronizationContext?

I m creating an STA version of the SynchronizationContext for use in Windows Workflow 4.0. I m wondering what to do about exceptions when Post-ing callbacks. The SynchronizationContext can be used ...

Show running instance in single instance application

I am building an application with C#. I managed to turn this into a single instance application by checking if the same process is already running. Process[] pname = Process.GetProcessesByName("...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...