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

Sample-Class für ASYNC und SYNC. More...

Static Public Member Functions

static string _CallAsyncMethodeWithoutAwait ()
 tsAClassSampleSynchAsyncCall001_Click (HTTP-Request) Asynchrone Methode in Task gekapselt und ohne async und await
static async Task< string > _CallAsyncMethode ()
 tsAClassSampleSynchAsyncCall002_Click (HTTP-Request) Asynchrone Methode mit async und await
static async Task< List< string > > _CallAsyncMethodeStreamReaderAv1000 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption01 Dialog bleibt frei (mit Thread-Sleep())
static List< string > _CallSyncMethodeStreamReaderAv1001 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption01 Dialog blockiert (mit Thread-Sleep()). Durch die Struktur muss das Resultat mit der Eigenschaft .Result ausgewertet werden. Daherm warten bis Programm beendet.
static async Task< List< string > > _CallAsyncMethodeStreamReaderB (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption02 Dialog bleibt offen
static async Task< List< string > > _CallAsyncMethodeSleepA (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption03
static async Task< List< string > > _CallAsyncMethodeSleepB (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption04
static async Task< List< string > > _CallAsyncMethodeSleepC (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption05.Checked
static async Task< string > _GetInformationAsync001_01 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (001)
static async Task< string > _GetInformationAsync001_02 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (002)
static async ValueTask< string > _GetInformationAsync001_03 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (003)
static async IAsyncEnumerable< List< string > > _GetInformationAsync002 (string _FileName)
 tsAClassSampleSynchAsyncCall003Async_Click::cbOption07.Checked
static async Task _DisplayCurrentInfoAsyncIntern ()
 TASK https://learn.microsoft.com/de-de/dotnet/csharp/asynchronous-programming/async-return-types.
static async Task _DisplayCurrentInfoAsyncExtern ()
static string _ExecuteAxisTaskMain (List< string > _ParameterStringList)
static string _ExecuteAxisTaskMainFactory (List< string > _ParameterStringList)
static string _ExecuteAxisTaskV1000 (string _StepperProcessingParameter)
static List< string > _CallAsyncMethodeStreamReader_Synch_Option02 (string _FileName)
 tsAClassSampleSynchAsyncCall003Synch_Click::cbOption02.Checked Einfach eine Verpackung der StreamReader-ASYNC Methode in einer Task-Methode die ohne async und await in der Signatur auskommt.
static async Task< List< string > > _CallAsyncMethodeStreamReader_Synch_Option03 (string _FileName)
 tsAClassSampleSynchAsyncCall003Synch_Click::cbOption03.Checked Einfach eine Verpackung der StreamReader-ASYNC Methode in einer Task-Methode die ohne async und await in der Signatur auskommt.
static Task< List< string > > _CallAsyncMethodeStreamReader_Synch_Option04 (string _FileName)
 tsAClassSampleSynchAsyncCall003Synch_Click::cbOption04.Checked Einfach nur eine Methode (SYNC) mit Task

Static Private Member Functions

static async Task WaitAndApologizeAsync ()

Static Private Attributes

static List< Task< string > > _TaskListAxis = new List<Task<string>>()

Detailed Description

Sample-Class für ASYNC und SYNC.


SampleSynchAsync :

SampleSynchAsync :

Member Function Documentation

◆ _CallAsyncMethode()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethode ( )
static

tsAClassSampleSynchAsyncCall002_Click (HTTP-Request) Asynchrone Methode mit async und await

Returns

Die Methode mit dem HTTP-Request ist in einer ASYNC_Methode und wird aus einer ASYNC-Methode (Signatur) ausgeführt.

◆ _CallAsyncMethodeSleepA()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeSleepA ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption03

Parameters
_FileName
Returns

Warnhinweis dass await-Operator fehlt Dialog bleibt frei

◆ _CallAsyncMethodeSleepB()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeSleepB ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption04

Parameters
_FileName
Returns

Warnhinweis dass await-Operator fehlt Dialog ist blockiert

◆ _CallAsyncMethodeSleepC()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeSleepC ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption05.Checked

Parameters
_FileName
Returns

Keine Warnungen!!! Dialog bleibt frei

Verwendung ohne async

braucht zwingend async in der Delegaten-Signatur

◆ _CallAsyncMethodeStreamReader_Synch_Option02()

List< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option02 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Synch_Click::cbOption02.Checked Einfach eine Verpackung der StreamReader-ASYNC Methode in einer Task-Methode die ohne async und await in der Signatur auskommt.

Parameters
_FileName
Returns

Eigentlich Analog: tsAClassSampleSynchAsyncCall003Async_Click::Option-1

Das ist die Task-Definition mit async für den darin enthaltenen Lambda-Ausdruck (Code)

Achtung: Diese Task-Definition muss manuell zur Ausführung gebracht werden mit => .Result;

◆ _CallAsyncMethodeStreamReader_Synch_Option03()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option03 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Synch_Click::cbOption03.Checked Einfach eine Verpackung der StreamReader-ASYNC Methode in einer Task-Methode die ohne async und await in der Signatur auskommt.

Parameters
_FileName
Returns

Eigentlich Analog: tsAClassSampleSynchAsyncCall003Async_Click::Option-1

◆ _CallAsyncMethodeStreamReader_Synch_Option04()

Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option04 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Synch_Click::cbOption04.Checked Einfach nur eine Methode (SYNC) mit Task

Parameters
_FileName
Returns

Eigentlich Analog: tsAClassSampleSynchAsyncCall003Async_Click::Option-1

Variante-1: Mit dieser Implementierung ist der Dialog nicht blockiert, also ASYNC. Es braucht also ein Task.Run implementierung für einen ASYNC-Vorgang

Variante-2: Mit dieser Implementierung ist der Dialog blockiert, also SYNC. Es braucht also ein Task.Run implementierung für einen ASYNC-Vorgang

◆ _CallAsyncMethodeStreamReaderAv1000()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeStreamReaderAv1000 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption01 Dialog bleibt frei (mit Thread-Sleep())

Parameters
_FileName
Returns

◆ _CallAsyncMethodeStreamReaderB()

async Task< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeStreamReaderB ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption02 Dialog bleibt offen

Parameters
_FileName
Returns

Basis-Methode ist ASYNC und awaitable

◆ _CallAsyncMethodeWithoutAwait()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallAsyncMethodeWithoutAwait ( )
static

tsAClassSampleSynchAsyncCall001_Click (HTTP-Request) Asynchrone Methode in Task gekapselt und ohne async und await

Returns

Ziel war es eine ASYNC-Methode (HTTP-Request) aus einer normalen Methode ohne ASYNC (und await) in der Signatur auszuführen. Der entscheidende Teil der Methode _TaskCallMethode wird ohne AWAIT einfach nur SYNCH ausgeführt, muss mit Task.Result auf die Ausführung und Beendidung gewartet werden

Das ist der entscheidende Punkt: .RESULT (muss ausgeführt werden!!)

◆ _CallSyncMethodeStreamReaderAv1001()

List< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._CallSyncMethodeStreamReaderAv1001 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption01 Dialog blockiert (mit Thread-Sleep()). Durch die Struktur muss das Resultat mit der Eigenschaft .Result ausgewertet werden. Daherm warten bis Programm beendet.

Parameters
_FileName
Returns

In Basis-Methode ist die .Result (Eigenschaft) aktiv => also SYNC und warten auf Ende. Diese Methode ist nicht awaitable, daher Ausführung mit .Result! Keine ASYNC Ausaführung, und das Dialog ist blockiert.

◆ _DisplayCurrentInfoAsyncExtern()

async Task fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._DisplayCurrentInfoAsyncExtern ( )
static
Returns

◆ _DisplayCurrentInfoAsyncIntern()

async Task fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._DisplayCurrentInfoAsyncIntern ( )
static

◆ _ExecuteAxisTaskMain()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._ExecuteAxisTaskMain ( List< string > _ParameterStringList)
static
Parameters
_ParameterStringList
Returns

Die Grundidee ist, dass ich eine List-Instance mit Namen der Axis und den Parametern an eine Methode zur Ausfhührung übergeben kann. Das Ganze wird als await Task.Run() initiert, und ausgeführt.

Das Thema Task.Factory.StartNew() muss ich aber noch genauer ansehen, resp. warum?? Macht grundsätzlich keinen direkten Unterschied. Gemäss einer anderen Web-Page wird davon gesprochen, Task.Factory.StartNew() nicht wirklich THREADSAVE ist.

https://devblogs.microsoft.com/dotnet/task-run-vs-task-factory-startnew/ https://docs.devexpress.com/CodeRushForRoslyn/400357/static-code-analysis/analyzers-library/crr0041-use-task-run-instead-of-task-factory-start-new

Erstellen Task-Liste mit allen Processen zur Ausführung: die TaskViewDialoge aus der HelperTaskViewStringReturn-Class werden verwendet

Kein ASYNC. dieser Methode => AWAIT kann nicht auf VOID warten!

◆ _ExecuteAxisTaskMainFactory()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._ExecuteAxisTaskMainFactory ( List< string > _ParameterStringList)
static
Parameters
_ParameterStringList
Returns

Erstellen Task-Liste mit allen Processen zur Ausführung: die TaskViewDialoge aus der HelperTaskViewStringReturn-Class werden verwendet

Kein ASYNC. dieser Methode => AWAIT kann nicht auf VOID warten!

◆ _ExecuteAxisTaskV1000()

string fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._ExecuteAxisTaskV1000 ( string _StepperProcessingParameter)
static
Parameters
_StepperProcessingParameter
Returns

◆ _GetInformationAsync001_01()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._GetInformationAsync001_01 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (001)

Parameters
_FileName
Returns

Design-Muster für AWAITABLE Dialog bleibt frei

Thread.Sleep() ohne await => da Task-Methode in sich nicht async!

◆ _GetInformationAsync001_02()

async Task< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._GetInformationAsync001_02 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (002)

Parameters
_FileName
Returns

Design-Muster für AWAITABLE, Dialog bleibt frei

◆ _GetInformationAsync001_03()

async ValueTask< string > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._GetInformationAsync001_03 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption06.Checked (003)

Parameters
_FileName
Returns

Der Hauptunterschied zwischen Task und ValueTask liegt in ihrer Speicherzuweisung und ihren Nutzungsmustern. ValueTask ist eine Struktur, wird auf dem Stapel zugewiesen und erfordert in den meisten Fällen keine Heap-Zuweisung. Darunter enthält ValueTask entweder: Eine Task, wenn eine Methode ValueTask zurückgibt, aber intern normale Tasks verwendet Design-Muster für AWAITABLE, Dialog bleibt frei

◆ _GetInformationAsync002()

async IAsyncEnumerable< List< string > > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._GetInformationAsync002 ( string _FileName)
static

tsAClassSampleSynchAsyncCall003Async_Click::cbOption07.Checked

Parameters
_FileName
Returns

IAsyncEnumerable https://learn.microsoft.com/de-de/dotnet/csharp/asynchronous-programming/async-return-types

◆ WaitAndApologizeAsync()

async Task fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync.WaitAndApologizeAsync ( )
staticprivate
Returns

Member Data Documentation

◆ _TaskListAxis

List<Task<string> > fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleSynchAsync._TaskListAxis = new List<Task<string>>()
staticprivate

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/SampleSynchAsync.cs