Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从C#调用WaitForSingleObject大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试从C#中调用WaitForSingLeobject方法,如下所述:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx

为了调用这个函数,我需要创build一个Handle,或者我需要得到一个IntPtrtypes的Handle,怎么做?

我试过这个function,我发现: http : //www.pinvoke.net/default.aspx/kernel32.WaitForSingLeobject

当内存限制接近时转储缓冲的数据

WMI Win32_PhysicalMedia serialnumber有时是hex的,有时是以相反的字节顺序

使用LLVM传递加载和存储variables

跟踪光标C ++

使用FILE_FLAG_RANDOM_ACCESS访问文件,限制caching大小

[DllImport("coredll.dll",SetLastError = true,CallingConvention = CallingConvention.Winapi,CharSet = CharSet.Auto)] public static extern IntPtr CreateEvent(HANDLE lpEventAttributes,[In,MarshalAs(UnmanagedType.bool)] bool bManualReset,MarshalAs(UnmanagedType.bool)] bool bIntialState,MarshalAs(UnmanagedType.bStr)] String lpName);

或者,例如,当我从控制台获取句柄时:

IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;

它抛出一个DllNotFoundException。

这里有什么问题?

我需要它来运行这个函数调用的过程,并从它的过程中获取一个转储,用于我的ClrMd库学习。

任何帮助将不胜感激。

代码例:

static void Main(String[] args) { var autoEvent = new AutoResetEvent(false); //this is where I get the DllNotFoundException WaitForSingLeobject(autoEvent.Handle,WAIT_TIMEOUT ); } [DllImport("kernel32.dll")] static extern uint WaitForMultipLeobjects(uint nCount,IntPtr[] lpHandles,bool bWaitAll,uint dwMilliseconds); public const Int32 WAIT_TIMEOUT = 0x102;

@H_699_0@mS窗口中的应用程序path位置

setitimer的ITIMER_PROF(SIGPROF)是否发送给Multithread和NPTL和Linux(2.6.21.7)中的每个线程?

Linux framebuffer像素位域通用实现

主stream程和线程之间如何使用Unixpipe道?

执行function。 有没有办法回到主程序?

我想调用等待一些句柄的本地方法(WaitForMultipLeobjects)(不介意哪一个),然后我想在线程堆栈上使用ClrMd库在转储文件中看到它

好的,那么new ManualResetEvent(false).WaitOne()呢? 这应该显示在转储文件中。 这是可靠的。

只是选择任何现有的手柄是不可靠的,因为它可能会被发送或随时销毁。 或者,你可以通过等待来改变它的状态。 没有必要,@L_893_4@manualResetEvent可以创建一个新的句柄。

我不会通过WinApi从C#中得到这个:你有C#中的EventWaitHandler和其他同步对象,使用它们:

WaitHandle wh = new EventWaitHandler(); //do whatever you need ... WaitHandler.WaitOne(wh); // equivalent to WaitForSingLeobject in WinApi

如果你确实需要与WinApi互操作,你可以使用wh.SafeWaitHandle

另外我怀疑Process.GetCurrentProcess().MainWindowHandle不能在一个控制台应用程序,根本没有任何窗口

我的错误,我已经发布WaitForMultipLeobjects而不是WaitForSingLeobject,主要问题是WaitForSingLeobject留在DllImport(“coredll.dll”…)我不知道我在哪里找到它,但我没有…

对困惑感到抱歉

大佬总结

以上是大佬教程为你收集整理的从C#调用WaitForSingleObject全部内容,希望文章能够帮你解决从C#调用WaitForSingleObject所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: