2016-04-12 16 views
9

Sto lavorando con .NET Core sul mio computer Mac.Thread.Sleep() in .NET Core su Mac

Da qualche parte nel mio codice voglio usare questo codice:

System.Threading.Thread.Sleep(100); 

Ma non riesce a trovare Thread in System.Threading namespace.

Cosa c'è che non va? Non è disponibile Thread per Mac o mi manca qualcosa?

+4

Meh, non trattenere il respiro per questo. Questo è stato eliminato molto tempo prima che CoreFx fosse avviato. Task.Delay() è la via da seguire, è il modo giusto ™ –

+0

@HansPassant Hai ragione. BTW, è Mehran;) – mehrandvd

risposta

6

non Thread è disponibile per Mac?

Non ancora: https://github.com/dotnet/corefx/issues/2576

Lo System.Threading.Thread corrente (e System.Threading.ThreadPool) pacchetti supportano solo desktop e CoreCLR.

e: https://github.com/dotnet/corefx/issues/2576#issuecomment-187184341

posso vedere che l'ultimo pacchetto System.Threading.Thread nel feed NuGet dotnet-core non è cambiata questa immagine.

+0

Leggendo il numero2576 sarà disponibile in rc2, e rc2 sarà spedito a breve – Eldho

+0

@Eldho Quindi perché ho detto "non ancora" :) –

+0

Sì, basta confermarlo – Eldho

11

Avete aggiunto il pacchetto System.Threading.Thread al numero project.json?

{ 
    "version": "1.0.0-*", 
    "compilationOptions": { 
     "emitEntryPoint": true 
    }, 

    "dependencies": { 
     "NETStandard.Library": "1.0.0-rc2-23811", 
     "System.Threading.Thread": "4.0.0-beta-23516" 
    }, 

    "frameworks": { 
     "dnxcore50": { } 
    } 
} 

Poi posso usare Thread.Sleep:

using System; 
using System.Threading; 


    namespace ConsoleApplication 
    { 
     public class Program 
     { 
      public static void Main(string[] args) 
      { 
       Console.WriteLine(DateTime.Now); 
       Thread.Sleep(2000); 
       Console.WriteLine("Hello World!"); 
       Console.WriteLine(DateTime.Now); 
      } 
     } 
    } 

enter image description here