Microsoft .Net-Samples
Loading...
Searching...
No Matches
fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001 Class Reference

Static Public Member Functions

static async Task< string > _TaskRun_Start001 ()
 Asynchrone Start-Methode:
static async Task< string > _TaskFactoryStartNew_Start002 ()
 Task.Factory.StartNew =>.
static async Task< string > _TaskFactoryStartNew_Start003 (string _MessageText001, string _MessageText002)
 Ist grundsätzlich nichts anderes als Variante-001. Nur anstelle von Task.Run eben Task.Factory.StartNew.
static async Task< string > _TaskFactoryStartNewMethode003_001 (string _MessageText001)
static async Task< string > _TaskFactoryStartNewMethode003_002 (string _MessageText002)
 Lambda mit Wait 10000.
static async Task< string > _Sample004AsyncCall (string _Message)
static async Task< ModelGPIOPinProperty_CreateClassInstanceFromStream001 ()
 Standard-Version.
static async Task< ModelGPIOPinProperty_CreateClassInstanceFromStream002 ()

Static Private Member Functions

static async Task< string > _TaskRunMethode001_001 ()
 Task.Run => Ausführen einer Methode.
static async Task< string > _TaskRunMethode001_002 ()
 Task.Run => Ausführen Lambda-Ausdruck Beim Lambda-Ausdruck befindet sich der ausführbare Code im Body des Task.Run.
static async Task< string > _TaskFactoryStartNewMethode002_001 ()
 Task.Factory.StartNew Ist eigentlich analog Task.Run, was der genaue unterschied ist, müsste ich zuerst nachlesen.
static async Task< string > _TaskFactoryStartNewMethode002_002 ()
static Task< bool > _TaskFactoryStartNewMethode002_002_Process (out string _OutputMessage, string _BenutzerName)
static string _SampleTask_002_WaitMethode ()
static string _SampleTask_002_WaitMethode (ref bool _Check)
static Task< string > _SampleTask_002_WaitMethode_Awaitable ()
static Task< string > _SampleTask_002_WaitMethode_Awaitable (ref bool _Check)
static string _TaskFactoryStartNewMethode003_001_Methode (string _MessageText001)
static async Task< T > _ReadRequestBody< T > (T _ClassInstance, Stream _RequestBodyStream)
 Primary Stream-Reader und Convert (generic) to Class-Instance (Type).
static string _WaitMethode ()
 local Wait-Methode (ca. Line 367)

Detailed Description

Problematik Task.Run() vs Task.Factory.StartNew() In .NET 4 war Task.Factory.StartNew die primäre Methode zum Planen einer neuen Aufgabe. Viele Überladungen ermöglichten
einen hochgradig konfigurierbaren Mechanismus, der das Festlegen von Optionen, das Übergeben beliebiger Zustände, das Aktivieren von Abbrüchen und sogar das Steuern von Planungsverhalten ermöglichte. Die Kehrseite all dieser Leistungsfähigkeit ist die Komplexität. Sie müssen wissen, wann Sie welche Überladung verwenden, welchen Planer Sie bereitstellen usw. Und „Task.Factory.StartNew“ geht nicht gerade leicht über die Lippen, zumindest nicht schnell genug für etwas, das in so primären Szenarien wie dem einfachen Auslagern von Arbeit auf Hintergrundverarbeitungsthreads verwendet wird.

Daher haben wir (Microsoft) in der .NET Framework 4.5 Developer Preview die neue Methode Task.Run eingeführt. Dies ersetzt Task.Factory.StartNew keineswegs, sondern ist vielmehr als schnelle Möglichkeit zu betrachten, Task.Factory.StartNew zu verwenden, ohne eine Reihe von Parametern angeben zu müssen. Es ist eine Abkürzung. Tatsächlich wird Task.Run in derselben Logik implementiert, die für Task.Factory.StartNew verwendet wird, nur dass einige Standardparameter übergeben werden. Wenn Sie eine Aktion an Task.Run übergeben:

Member Function Documentation

◆ _CreateClassInstanceFromStream001()

async Task< ModelGPIOPinProperty > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._CreateClassInstanceFromStream001 ( )
static

Standard-Version.

  1. Class-Intance create
  2. Serialize to string
  3. Create Memory-Stream
  4. Methode:_ReadRequestBody() => Read Stream and convert to Class-Instance
Returns

◆ _CreateClassInstanceFromStream002()

async Task< ModelGPIOPinProperty > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._CreateClassInstanceFromStream002 ( )
static
Returns

Lambdaausdruck (Code in Klammern {}) als AWAIT: Dann muss der eigentliche Lamdbaausdruck ASYNC sein!

◆ _ReadRequestBody< T >()

async Task< T > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._ReadRequestBody< T > ( T _ClassInstance,
Stream _RequestBodyStream )
staticprivate

Primary Stream-Reader und Convert (generic) to Class-Instance (Type).

Template Parameters
T
Parameters
_ClassInstance
_RequestBodyStream
Returns

◆ _Sample004AsyncCall()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._Sample004AsyncCall ( string _Message)
static
Parameters
_Message
Returns

◆ _SampleTask_002_WaitMethode() [1/2]

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._SampleTask_002_WaitMethode ( )
staticprivate
Returns

◆ _SampleTask_002_WaitMethode() [2/2]

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._SampleTask_002_WaitMethode ( ref bool _Check)
staticprivate
Parameters
_Check
Returns

◆ _SampleTask_002_WaitMethode_Awaitable() [1/2]

Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._SampleTask_002_WaitMethode_Awaitable ( )
staticprivate
Returns

◆ _SampleTask_002_WaitMethode_Awaitable() [2/2]

Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._SampleTask_002_WaitMethode_Awaitable ( ref bool _Check)
staticprivate
Parameters
_Check
Returns

◆ _TaskFactoryStartNew_Start002()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNew_Start002 ( )
static

Task.Factory.StartNew =>.

async void => geht nicht! Kann nicht auf void (nichts) warten. Macht eigentlich sinn!

public static async void _RunAsync002()

Call local WaitMethode()

◆ _TaskFactoryStartNew_Start003()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNew_Start003 ( string _MessageText001,
string _MessageText002 )
static

Ist grundsätzlich nichts anderes als Variante-001. Nur anstelle von Task.Run eben Task.Factory.StartNew.

Returns

https://learn.microsoft.com/de-de/dotnet/api/system.threading.tasks.task.run?view=net-7.0 Verwendung eines Lambdaausdruck um Code zu definieren, welcher ausgehführt werden soll. https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/operators/lambda-expressions https://coders-corner.net/2013/01/09/crashkurs-lambda-expressions/

◆ _TaskFactoryStartNewMethode002_001()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode002_001 ( )
staticprivate

Task.Factory.StartNew Ist eigentlich analog Task.Run, was der genaue unterschied ist, müsste ich zuerst nachlesen.

Returns

https://learn.microsoft.com/de-de/dotnet/api/system.threading.tasks.task.run?view=net-7.0

Ausführen einer Methode

◆ _TaskFactoryStartNewMethode002_002()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode002_002 ( )
staticprivate
Returns

Feler: CS4010 Option-H / -I CS4010 Async Lambdaausdruck kann nicht in Delegattyp Func<string> konvertiert werden. Async Lambdaausdruck gibt möglicherweise void, Task oder Task<T> zurück. Diese können nicht in Func<string> konvertiert werden. (fho.frm.net.Microsoft_DotNetSamples)

A

B Keine Lambda-Methode, also kein Code

C

D Methode in Lambda-Ausderuck ist awaitable!

E

F

G

H: Das Problem gelöst ohne Lambda-Methode

I: Das Problem gelöst mit Lambda-Methode

J: Implementierung als FUNCTION

x:

LAST-VERSION:Z

Return

◆ _TaskFactoryStartNewMethode002_002_Process()

Task< bool > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode002_002_Process ( out string _OutputMessage,
string _BenutzerName )
staticprivate
Parameters
_OutputMessage
_BenutzerName
Returns

◆ _TaskFactoryStartNewMethode003_001()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode003_001 ( string _MessageText001)
static
Parameters
_MessageText001
Returns

◆ _TaskFactoryStartNewMethode003_001_Methode()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode003_001_Methode ( string _MessageText001)
staticprivate

◆ _TaskFactoryStartNewMethode003_002()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskFactoryStartNewMethode003_002 ( string _MessageText002)
static

Lambda mit Wait 10000.

Parameters
_MessageText002
Returns

◆ _TaskRun_Start001()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskRun_Start001 ( )
static

Asynchrone Start-Methode:

  1. Task.Run => Ausführen einer Methode
  2. Task.Run => Ausführen Lambda-Ausdruck
Returns

◆ _TaskRunMethode001_001()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskRunMethode001_001 ( )
staticprivate

Task.Run => Ausführen einer Methode.

Returns

◆ _TaskRunMethode001_002()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._TaskRunMethode001_002 ( )
staticprivate

Task.Run => Ausführen Lambda-Ausdruck Beim Lambda-Ausdruck befindet sich der ausführbare Code im Body des Task.Run.

Returns

◆ _WaitMethode()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTask001._WaitMethode ( )
staticprivate

local Wait-Methode (ca. Line 367)

Returns

The documentation for this class was generated from the following file:
  • U:/00000000_global_projects/000_DotNetxx/fho.frm.net.Microsoft_DotNetSamples/fho.frm.net.Microsoft_DotNetSamples/ClassMethode/SampleTask001.cs