我必须从我的Windows窗体应用程序导入kernel32.dll才能使用Sleep功能。 在VB.net中,我使用以下代码。
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
如何在c#中转换它?
答案 0 :(得分:5)
如果您愿意,可以在kernel32中调用/调用该函数,如其他答案所示。但是,这样做几乎肯定是错误的。从您的Declare
声明的形式来看,我认为您的代码会在.net之前发布。
在.net中,您应该致电Thread.Sleep
。平台提供所需功能的地方使用它。文档说:
此方法从Windows系统API调用Sleep函数。
它总是更清洁,更适合使用平台。只有在没有平台提供的方式来实现功能时才使用p / invoke。
答案 1 :(得分:2)
您可以看到PInvoke
的文档[DllImport("kernel32.dll")]
static extern void Sleep(uint dwMilliseconds);
// code added by g. sharp @ http://www.paradisim.net
public class MainApp
{
[STAThread]
public static void Main()
{
Sleep(U2000); // pause for two seconds
System.Threading.Thread.Sleep(2000); // does the same thing
}
}
答案 2 :(得分:1)
Using System.Runtime.InteropServices;
....
public class NativeMethods
{
[DllImport("kernel32")]
public static extern void Sleep(uint dwMilliseconds);
}