2011-03-01 14 views
5

¿Hay alguna diferencia (rendimiento, aplicación .whatever.) Entre las siguientes:Cualquier diferencia entre el sueño y kernel32.dll Thread.Sleep()

i) del sueño

DllImport("kernel32.dll")] 
     public extern static void Sleep(uint msec); 

..then llamada función

ii)

Thread.Sleep() 
+2

La diferencia obvia es que una está diseñada para ser utilizada en código nativo, la otra en código administrado que se dirige a .NET Framework. ¿Puedes explicar lo que quieres saber * más allá de * esa distinción? –

+0

¿Tenemos que considerar el uso de la forma alternativa, o ambos servirá el propósito? –

+2

No, no hay razón por la que deba tener que P/Invocar 'Sleep' desde kernel32.dll cuando está escribiendo código C#. 'Thread.Sleep' funcionará perfectamente, y es el método preferido. –

Respuesta

-1

no me lo creo. Ambos trabajan solo en el hilo actual.

Tenga cuidado al utilizar la función Suspender en el hilo principal, ya que los programas que dependen del tiempo sincronizado generalmente causan problemas cuando cambian las configuraciones externas.

Sin embargo, el uso de Sleep en soporte o escucha no suele ser un problema.

Cuestiones relacionadas