2016-04-12 36 views
9

Pracuję z .NET Core na moim komputerze Mac.Thread.Sleep() w .NET Core na Macu

Gdzieś w moim kodu chcę użyć tego kodu:

System.Threading.Thread.Sleep(100); 

Ale to nie może znaleźć Thread w System.Threading nazw.

Co jest nie tak? Czy na komputerze Mac nie jest dostępna Thread, czy czegoś brakuje?

+4

Meh, nie wstrzymuj oddechu. Zostało to upuszczone na długo przed uruchomieniem CoreFx. Task.Delay() to droga naprzód, to jest Right Way ™ –

+0

@HansPassant Masz rację. BTW, to Mehran;) – mehrandvd

Odpowiedz

6

nie Thread jest dostępny dla Mac?

Jeszcze nie: https://github.com/dotnet/corefx/issues/2576

Obecny System.Threading.Thread (i System.Threading.ThreadPool) pakiety obsługują tylko pulpit i CoreCLR.

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

widzę, że najnowszy pakiet System.Threading.Thread w paszy Nuget DotNet-core nie zmienił się ten obraz.

+0

Odczytanie numeru 2576 będzie dostępne w rc2, a rc2 wkrótce będzie wysyłane – Eldho

+0

@Eldho Dlatego właśnie powiedziałem "jeszcze nie" :) –

+0

Tak, tylko potwierdzam to – Eldho

11

Czy masz już pakiet System.Threading.Thread do swojego 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": { } 
    } 
} 

Wtedy mogę używać 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