(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

TaskFactory.StartNew-Methode (Action)

Erstellt und startet eine Aufgabe.

Namespace:  System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

public Task StartNew(
	Action action
)

Parameter

action
Typ: System.Action
Der Aktionsdelegat, der asynchron ausgeführt werden soll.

Rückgabewert

Typ: System.Threading.Tasks.Task
Die begonnene Aufgabe.

AusnahmeBedingung
ArgumentNullException

Das action-Argument ist Null.

StartNew wird zum Erstellen einer Aufgabe, indem es einen der Konstruktoren, und die Methode Task.Start verwendet dann zu, aufrufen, um die Aufgabe für die Ausführung zu planen funktional äquivalent. Ab .NET Framework 4.5, können Sie die Run-Methode mit einem [System.Action]-Objekt als schnelle Methode, StartNew mit Standardparametern aufzurufen. Weitere Informationen und Codebeispiele finden Sie unter Task.Run für Task.Factory.StartNew im Blog "Parallele Programmierung mit .NET".

Im folgenden Beispiel verwendet die StartNew(Action)-Methode, um einen Delegaten Action wiederholt aufzurufen, der eine Zufallszahl generiert, als Unicode-Codepunkt interpretiert, es an eine UTF16-encoded Codeeinheit konvertiert und Informationen zum resultierende Zeichen oder die Zeichen angezeigt.


using System;
using System.Collections.Generic;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();
      List<Task> tasks  = new List<Task>();
      // Execute the task 10 times.
      for (int ctr = 1; ctr <= 9; ctr++) {
         tasks.Add(Task.Factory.StartNew( () => {
                                            int utf32 = 0;
                                            lock(rnd) {
                                               // Get UTF32 value.
                                               utf32 = rnd.Next(0, 0xE01F0);
                                            }
                                            // Convert it to a UTF16-encoded character.
                                            string utf16 = Char.ConvertFromUtf32(utf32);
                                            // Display information about the character.
                                            Console.WriteLine("0x{0:X8} --> '{1,2}' ({2})", 
                                                              utf32, utf16, ShowHex(utf16));
                                         }));                           
      }
      Task.WaitAll(tasks.ToArray()); 
   }

   private static string ShowHex(string value)
   {
      string hexString = null;
      // Handle only non-control characters.
      if (! Char.IsControl(value, 0)) {
         foreach (var ch in value)
            hexString += String.Format("0x{0} ", Convert.ToUInt16(ch));

      }   
      return hexString.Trim();
   }
}
// The example displays the following output:
//       0x00097103 --> '����' (0x55836 0x56579)
//       0x000A98A1 --> '����' (0x55910 0x56481)
//       0x00050002 --> '����' (0x55552 0x56322)
//       0x0000FEF1 --> ' ﻱ' (0x65265)
//       0x0008BC0A --> '����' (0x55791 0x56330)
//       0x000860EA --> '����' (0x55768 0x56554)
//       0x0009AC5A --> '����' (0x55851 0x56410)
//       0x00053320 --> '����' (0x55564 0x57120)
//       0x000874EF --> '����' (0x55773 0x56559)


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft