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

Main-Form für diese Anwendung. More...

Inheritance diagram for fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples:

Public Member Functions

 frmDotNetSamples ()
 Standard Constructor.

Protected Member Functions

override void Dispose (bool disposing)
 Clean up any resources being used.

Private Member Functions

void FrmAsyncSamples_Load (object sender, EventArgs e)
 Form-Load.
void FrmAsyncSamples_FormClosed (object sender, FormClosedEventArgs e)
 Form-Close.
void FrmAsyncSamples_KeyDown (object sender, KeyEventArgs e)
 Form Key-Down.
void tsA_Close_Click (object sender, EventArgs e)
 tsA_Close
async void tsA_TaskRun_Sample001_Click (object sender, EventArgs e)
 Menu: Task.Run Samples: Task.Run (001).
async void tsA_TaskRun_Sample002_Click (object sender, EventArgs e)
 Menu: Task.Run Samples: Task.Run (002).
void tsA_TaskRun_Sample003_Click (object sender, EventArgs e)
 Menu: Task.Run Samples: Task.Run (003).
async void tsA_TaskRun_Sample004_Click (object sender, EventArgs e)
 Menu: Task.Run Samples: Task.Run (004).
async void tsA_TaskRun_Sample005_Click (object sender, EventArgs e)
 Task.Run() und Task.Factory.StartNew() => Menu: Task.Run Samples: Task.Run (005).
async void tsA_TaskRun_Sample006_Click (object sender, EventArgs e)
 Task.Run() mit Cancellation-Token => Menu: Task.Run Samples: Task.Run (006).
Task tsA_TaskRun_Sample006_Click_TaskWrapper (CancellationTokenSource _CancellationTokenSource, CancellationToken _CancellationToken)
 Wrapper Task.Run() aus tsA_TaskRun_Sample006_Click().
async void tsA_TaskRun_Sample007_Click (object sender, EventArgs e)
 (1) Task.Run() Sample mit einem Cancellation-Token.
Task tsA_TaskRun_Sample007_Click_TaskWrapper (CancellationTokenSource _CancellationTokenSource, CancellationToken _CancellationToken)
 (2) Implementiert (kapselt) die Ausführende Methode im Sample mit CancellationTokenSource und CancellationToken
void tsA_TaskRun_Sample007Cancel_Click (object sender, EventArgs e)
void tsA_TaskFromResult_Sample001_Click (object sender, EventArgs e)
 Menu: Task.FromResult Samples : Task.FromResult (001).
async void tsA_TaskFromResult_Sample002_Click (object sender, EventArgs e)
 Menu: Task.FromResult Samples : Task.FromResult (002).
async void tsA_TaskFromResult_Sample003_Click (object sender, EventArgs e)
 Menu: Task.FromResult Samples : Task.FromResult (003).
void tsA_Standard_Sample001_Click (object sender, EventArgs e)
 Menu: Standard (SYNCH) : Standard (001).
async void tsAClassSampleDiversAwaitable001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Diverse : AWAITABLE-001.
async void tsAClassSampleTask001Async001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-001 : Async-001.
async void tsAClassSampleTask001Async002_Click (object sender, EventArgs e)
 INF: 24.10.2024 => Aktuelle Frage nach Task.Run() vs Task.FactoryRun() [frmDotNetSamples:tsAClassSampleTask001Async002_Click()].
async void tsAClassSampleTask001Async003_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-001 : Async-003.
async void tsAClassSampleTask001Async004_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-001 : Async-004.
async void tsAClassSampleTask001Async005_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-001 : Async-005.
void tsAClassSampleLambda001Lambda001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Lambda-001 : Lambda-001 Function (FUNC) mit benannter Methode und eine Variante mit einem Lambda-Ausdruck.
void tsAClassSampleLambda001Lambda002_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Lambda-001 : Lambda-002 Implementierung von FUNC-Varianten. K�nnte so auch f�r Programm-Varianten anstelle eines Interface verwendet werden.
void tsAClassSampleLambda001Lambda003_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Lambda-001 : Lambda-003 Implementierung mit Action. Leider ist der delegate nur VOID Siehe auch SampleDelegateAction, kein Return.
async void tsAClassSampleLambda001Lambda004_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Lambda-001 : Lambda-004.
void tsAClassSampleSerializableSerializationInfo_Click (object sender, EventArgs e)
 NEW: 23.01.2025 => NEW: TEST-Methode implementieren .Net DataContractSerializer NEW.
void tsAClassSampleSerializableJSONHelpInfo_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Serializable : Serialize JSON-File (Help-Info).
void tsAClassSampleSerializableJsonIgnoreAttribute_Click (object sender, EventArgs e)
 Menu: Any Samples : Serializable .Net 8.0 Serialize: JsonIgnore-Attribute.
void tsAClassSampleSerializableFW481DataContractSerializer_Click (object sender, EventArgs e)
 DataContract-Serializer aus .Net 8.0 / 9.0.
void tsAClassSampleSerializableJSONOptionNet90_Click (object sender, EventArgs e)
 INC: 27.10.2025 [tsAClassSampleSerializableJSONOptionNet90_Click] => Aktueller ToDo => SampleJSONSerializeNet90.
void tsAClassSampleExceptionUserException001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Exception : User-Exception 001.
void tsAClassSampleObjectManagerObjectManager001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Object-Manager : Object-Manager 001.
void tsAClassDelegateDelegateFunc_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Delegate : Delegate Func.
void tsAClassDelegateDelegateAction_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Delegate : Delegate Action.
async void tsAClassDesignPattern001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample001.
void tsAClassDesignPattern002_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample002.
async void tsAClassDesignPattern003_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample003.
async void tsAClassDesignPattern004_Click (object sender, EventArgs e)
 INF: 24.10.2024 => Design-Pattern für Awaitable [tsAClassDesignPattern004_Click()] [MyClassDesignPatternSample04].
void tsAClassDependencyInjection001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Dependency-Injection : Dependency-Injection-001.
void tsAClassInterface001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Interface : Interface-001.
void tsAClassSingleton001_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Singelton : Singelton-001.
void tsAClassSampleTaskViewVOID_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-View : Class TaskView-VOID => Keine Implementierung HelperTaskView-Class (VOID).
void tsAClassSampleTaskViewSTRING_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-View : Class TaskView-STRING => Keine Implementierung HelperTaskView-Class (STRING).
async void tsAClassSampleTaskViewPERSON_Click (object sender, EventArgs e)
 Menu: Any Samples : Class Task-View : Class TaskView-PERSON HelperTaskView-Class (PERSON) Die Logik sowie die Daten f�r die Class Person befindet sich in einer Methode!
async void tsAClassSampleParallelForEach001_Click (object sender, EventArgs e)
 Vergleich Parallel-ForEach/Async/ForEach Vergleich bei Berechnung der Byte-Kapazitäten von einzelnen Dateien.
async void tsAClassSampleParallelForEach002_Click (object sender, EventArgs e)
 SampleForEachParallel._RunningParallelMicrostepperv2000: Axis-Calculation f�r CNC.
async void tsAClassSampleParallelForEach003_Click (object sender, EventArgs e)
 INC: 29.09.2025 [tsAClassSampleParallelForEach003_Click] => Aktueller ToDo => tsAClassSampleParallelForEach003_Click Vergleich Parallel-ForEach/Async/ForEach Vergleich beim Schreiben von Text-Dateien auf Disk.
async void tsAClassSamplePropertyCreateClass001_Click (object sender, EventArgs e)
 Dynamic Create-Class.
async void tsAClassSampleThreadingStartThread001_Click (object sender, EventArgs e)
 Verschiedene Varianten f�r Thread-Processe.
void tsAClassSampleThreadingStartThread002_Click (object sender, EventArgs e)
 Startet eine UDP-Receive Session. Ausgabe an Debug anstelle Console.
async void tsAClassSampleReadControlgBoxL_Click (object sender, EventArgs e)
 Class-Control: Wie können Werte aus einer Control-Class (Object:System.Windows.Forms.CheckBox) ausgelesen werden.
void tsAClassSampleSynchAsyncCall001_Click (object sender, EventArgs e)
 Asynchrone Methode in Task gekapselt und ohne async und await.
async void tsAClassSampleSynchAsyncCall002_Click (object sender, EventArgs e)
 Asynchrone Methode mit async und await.
async void tsAClassSampleSynchAsyncCall003Async_Click (object sender, EventArgs e)
 SYNC-/ASYNC-Operations Class Synch / Async==>Call-003 ASYNC StreamReader()==>tsAClassSampleSynchAsyncCall003Async.
void tsAClassSampleSynchAsyncCall003Synch_Click (object sender, EventArgs e)
 SYNC-Operations: Verschiedene Operation in Zusammenhang mit StreamReader-Klasse.
async void tsAClassSampleSynchAsyncCall004AsyncTaskMethode_Click (object sender, EventArgs e)
 Ausführen einer normalen STATIC-BOOL Methode aus einer Klasse (sym.frm.net.Exxas_PowerBi) mit ASYNC-Muster.
void tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest_Click (object sender, EventArgs e)
 Ausführen async-Methode [HelperAsyncRESTRequest._HelperAsyncRequestExxas] in einer nicht asynch Umgebung / Methode.
async void tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter_Click (object sender, EventArgs e)
 INC: 29.09.2025 [tsAClassSampleSynchAsyncCall003Async_Click] => Aktueller ToDo => tsAClassSampleSynchAsyncCall003Async_Click::cbOption09.
void tsAClassSampleExtensionSample001_Click (object sender, EventArgs e)
 INF: 06.01.2025 => [SampleExtensionImplement::tsAClassSampleExtensionSample001_Click] Extension-Methodes und deren Implementierung.
void tsAClassSampleXMLOperationDynamicRead001_Click (object sender, EventArgs e)
 INF: 09.01.2025 => [SampleDynamicXml::tsAClassSampleXMLOperationDynamicRead001_Click] Extension-Methodes und deren Implementierung.
void tsAClassSampleObsoleteAttributeObsoleteAttribute_Click (object sender, EventArgs e)
 INF: 14.01.2025 => [SampleObsoleteAttribute::tsAClassSampleObsoleteAttributeObsoleteAttribute_Click] Obsolete-Attribute Objects tsAClassSampleObsoleteAttribute Diverses_ObsoleteAttribute.
void tsAClassSampleEnumConvert_Click (object sender, EventArgs e)
 CHK: 16.09.2025 => No Display Ouput Enum-Convert / Konvertierung mit ENUM.
void tsAClassSampleEnumDictionaryFunctions_Click (object sender, EventArgs e)
 Suchfunktionen mit ENUM und Dictionary sowie KeyValuePair-Methode.
void tsAClassSampleDataSetInsertRecordToDataSet_Click (object sender, EventArgs e)
 Exxas-Client => Einlesen CSV-File (Preisliste Microsoft) und save in DataSet.
void tsAClassSampleDataDataOperation001_Click (object sender, EventArgs e)
 IntelliCode und Autovervollständigung der Code-Zeilen.
void tsAClassSampleListWithNTupel_Click (object sender, EventArgs e)
 Der Ganze Begriff in der Klammer (string _CustomerName, string _Scanserver) ist Generic <T>.
void tsAClassGenericaCheckGenericType_Click (object sender, EventArgs e)
void tsACSharpVersionTokenEqGt_Click (object sender, EventArgs e)
 C# Token und Varianten der Darstellung CHK: 11.03.2024 => SampleLambdaAusdruckBody._GetProgramName()-Methode Lambda und Ausdruckskörper.
void tsACSharpVersionOperatorTernaryConditional_Click (object sender, EventArgs e)
 C# ternary conditional operator: Ternärer-Operator ?: [ (Ausdruck true/false) ? true-value : false-value.
void tsACSharpVersionOverrideMethode_Click (object sender, EventArgs e)
 C# override methode.
void tsACSharpVersion_ZeichenfolgenliteraleUtf8_Click (object sender, EventArgs e)
 VCS: 11.11.2024 => C#-11 => [ClassCSharp11::tsACSharpVersion11_ZeichenfolgenliteraleUtf8_Click] Aktuelle Position im Projekt. Auslesen Daten aus ReadonlySpan _FieldA INF: 04.03.2025 => Das ist aber ganz schön schräg!!!! =>pragma warning disable CS0108 in .editorconfig.
void tsACSharpVersion_ENUMType_Click (object sender, EventArgs e)
 Menu: C# Versionen : C# Version-11 : ENUM.
void tsACSharpVersion_ParameterRefReadonly_Click (object sender, EventArgs e)
 Menu: C# Versionen : C# Version-11 : Readonly VCS: 11.11.2024 => C#-11 => [ClassCSharp11::tsACSharpVersion11_Readonly_Click] Problem [readonly, ref, struct] etc..
void tsACSharpVersion_TupelType_Click (object sender, EventArgs e)
 VCS: 15.11.2024 => C#-12 => [ClassCSharp12::tsACSharpVersion_TupelType_Click] Tupel-Typen, List<(string _CustomerName, string _Scanserver)>.
void tsACSharpVersion_PrimaryConstructor_Click (object sender, EventArgs e)
 VCS: 12.11.2024 [No Display-Output] => C#-12 => [ClassCSharp12::tsACSharpVersion_PrimaryConstructor_Click] primary constructor, base, this ...
void tsACSharpVersion_Interceptors_Click (object sender, EventArgs e)
 VCS: 06.12.2024 => C#-12 => [ClassCSharp12::tsACSharpVersion_Interceptors_Click] Lauffähige Version: interceptors.
void tsACSharpVersion_ImplicitIndexerAccess_Click (object sender, EventArgs e)
 C# Version: 13.0 / Net 9.0: Implicit Index Access im Array, class, struct und div. varianten zu generika.
void tsACSharpVersion_CSharp13_LINQ_Click (object sender, EventArgs e)
 C# Version: 13.0 / Net 9.0: Diverse Varianten mit LINQ.
void tsACSharpVersion_CSharp13_ParamsCollections_Click (object sender, EventArgs e)
 C# Version: 13.0 / Net 9.0: Verwenden Methode-Parameter als Collection, nicht einzeln.
void tsACSharpVersion_CSharp13_PartialClassMembers_Click (object sender, EventArgs e)
void tsACSharpVersion_CSharp13_ThreadingLock_Click (object sender, EventArgs e)
 C# Version: 13.0 / Net 9.0: Threading und neue lock-Varianten.
async void tsACSharpVersion_CSharp13_ThreadingLockASYNC_Click (object sender, EventArgs e)
 Sammlung von Sample-Code zu.
void tsACSharpVersion_014_Default_Click (object sender, EventArgs e)
 C# Version 14.0 / Net 10.0 ==> Siehe Notebook mit VS-2026.
void tsACSharpVersion_014_LambdaParameterMod_Click (object sender, EventArgs e)
void tsARaspberryNet60RaspberrySystem_Click (object sender, EventArgs e)
 CHK: 30.06.2025 => Implementierung Raspberry Processor Menu: Raspberry : Dot-Net 6.0 : Raspberry-System.
void tsAMicrosoftKISample001_Click (object sender, EventArgs e)
void Dispose ()
 INF: 04.03.2025 => Das ist aber ganz schön schräg!!!! =>pragma warning disable CS0108 in .editorconfig.
void btnViewXmlDescription_Click (object sender, EventArgs e)
 Anzeigen XML Description-File aus Project. Darin sind alle XML-Kommentare vorhanden.
void InitializeComponent ()
 Required method for Designer support - do not modify the contents of this method with the code editor.

Static Private Member Functions

static string ReceiveDatav2100 ()
 Methode zu tsAClassSampleThreadingStartThread002_Click.

Private Attributes

CancellationTokenSource _GlobalCancellationTokenSource = new CancellationTokenSource()
 23.04.2024: weiss aktuelle nicht mehr was ich machen wollte im Detail
CancellationToken _GlobalCancellationToken
 Ãœbergeben des zurückgegebenden Token über die CancellationTokenSource. Token-Eigenschaft an jede Aufgabe oder Thread, der zum Lauschen verwendet wird, um den Abbruch zu bemerken.
string _XmlProjectFileName = string.Empty
string _HelpFileSavePath = string.Empty
string _ReturnValue = string.Empty
string _OutputMessage = string.Empty
bool _OutputStatus = false
System.ComponentModel.IContainer components = null
 Required designer variable.
ToolStrip tsA
SplitContainer spc
GroupBox gBoxL
SplitContainer spcR
GroupBox gBoxRUp
GroupBox gBoxRDown
ToolStripDropDownButton tsATaskRunSamples
ToolStripMenuItem tsA_TaskRun_Sample001
ToolStripMenuItem tsA_TaskRun_Sample002
ToolStripButton tsA_Close
ToolStripDropDownButton tsATaskFromResultSamples
ToolStripMenuItem tsA_TaskFromResult_Sample001
ToolStripMenuItem tsA_TaskRun_Sample003
ToolStripMenuItem tsA_TaskRun_Sample004
ToolStripMenuItem tsA_TaskFromResult_Sample002
ToolStripDropDownButton tsAStandardSYNCH
ToolStripMenuItem tsA_Standard_Sample001
ToolStripMenuItem tsA_TaskFromResult_Sample003
ToolStripMenuItem tsA_Divers_Sample001
ToolStripSeparator toolStripSeparator2
ToolStripMenuItem tsAClassSampleDivers
ToolStripMenuItem aaaaToolStripMenuItem
ToolStripMenuItem tsAClassSampleLambdaExpression001
ToolStripSeparator toolStripSeparator3
ToolStripDropDownButton tsAAnyClassSamples
ToolStripMenuItem tsAClassSampleDiversAwaitable001
ToolStripMenuItem tsAClassSampleTask001
ToolStripMenuItem tsAClassSampleLambda001
ToolStripMenuItem tsAClassSampleTask001Async001
ToolStripMenuItem tsAClassSampleTask001Async002
ToolStripMenuItem tsAClassSampleTask001Async003
ToolStripMenuItem tsAClassSampleLambda001Lambda001
ToolStripMenuItem tsAClassSampleLambda001Lambda002
ToolStripMenuItem tsAClassSampleLambda001Lambda003
ToolStripMenuItem tsAClassSampleLambda001Lambda004
ListBox lbMessage
ToolStripMenuItem tsAClassSampleSerializable
ToolStripMenuItem tsAClassSampleSerializableSerializationInfo
ToolStripMenuItem tsAClassSampleException
ToolStripMenuItem tsAClassSampleExceptionUserException001
ToolStripMenuItem tsAClassSampleObjectManager
ToolStripMenuItem tsAClassSampleObjectManagerObjectManager001
ToolStripMenuItem tsAClassDelegate
ToolStripMenuItem tsAClassDelegateDelegateFunc
ToolStripMenuItem tsAClassDelegateDelegateAction
ToolStripMenuItem tsAClassSampleTask001Async004
ToolStripMenuItem tsAClassSampleTask001Async005
CheckBox cbOption01
CheckBox cbOption05
CheckBox cbOption04
CheckBox cbOption03
CheckBox cbOption02
CheckBox cbOption06
CheckBox cbOption07
CheckBox cbOption08
ToolStripMenuItem tsAClassDesignPattern
ToolStripMenuItem tsAClassDesignPattern001
ToolStripMenuItem tsAClassDesignPattern002
ToolStripMenuItem tsAClassDependencyInjection
ToolStripMenuItem tsAClassDependencyInjection001
ToolStripMenuItem tsAClassInterface
ToolStripMenuItem tsAClassInterface001
ToolStripMenuItem tsAClassSingleton
ToolStripMenuItem tsAClassSingleton001
ToolStripMenuItem tsAClassDesignPattern003
ToolStripMenuItem tsAClassSampleTaskView
ToolStripMenuItem tsAClassSampleTaskViewVOID
ToolStripMenuItem tsAClassSampleTaskViewSTRING
ToolStripMenuItem tsAClassSampleTaskViewPERSON
ToolStripDropDownButton tsACSharpVersion
ToolStripMenuItem tsA_TaskRun_Sample005
ToolStripMenuItem tsA_TaskRun_Sample006
ToolStripDropDownButton tsARaspberry
ToolStripMenuItem tsARaspberryNet60
ToolStripMenuItem tsARaspberryNet60RaspberrySystem
ToolStripMenuItem tsAClassSampleParallel
ToolStripMenuItem tsAClassSampleParallelForEach001
ToolStripMenuItem tsAClassSampleParallelForEach002
ToolStripMenuItem tsAClassSampleProperty
ToolStripMenuItem tsAClassSamplePropertyCreateClass001
ToolStripMenuItem tsAClassSampleThreading
ToolStripMenuItem tsAClassSampleThreadingStartThread001
ToolStripMenuItem tsAClassSampleReadControl
ToolStripMenuItem tsAClassSampleReadControlgBoxL
ToolStripMenuItem tsA_TaskRun_Sample007
ToolStripMenuItem tsA_TaskRun_Sample007Cancel
ToolStripMenuItem tsAClassSampleSynchAsync
ToolStripMenuItem tsAClassSampleSynchAsyncCall001
ToolStripMenuItem tsAClassSampleSynchAsyncCall002
ToolStripMenuItem tsAClassSampleSynchAsyncCall003Async
ToolStripMenuItem tsAClassSampleSynchAsyncCall003Synch
OpenFileDialog ofd
CheckBox cbOption11
CheckBox cbOption10
CheckBox cbOption09
ToolStripMenuItem tsAClassSampleThreadingStartThread002
ToolStripMenuItem tsAClassDesignPattern004
ToolStripMenuItem tsACSharpVersion_ZeichenfolgenliteraleUtf8
ToolStripMenuItem tsACSharpVersion_ENUMType
ToolStripMenuItem tsACSharpVersion_ParameterRefReadonly
ToolStripMenuItem tsACSharpVersion_TupelType
ToolStripMenuItem tsACSharpVersion_PrimaryConstructor
ToolStripMenuItem tsACSharpVersion_ImplicitIndexerAccess
ToolStripMenuItem tsACSharpVersion_Interceptors
ToolStripMenuItem tsAClassSampleExtension
ToolStripMenuItem tsAClassSampleExtensionSample001
ToolStripMenuItem tsAClassSampleXMLOperation
ToolStripMenuItem tsAClassSampleXMLOperationDynamicRead001
ToolStripMenuItem tsAClassSampleObsoleteAttribute
ToolStripMenuItem tsAClassSampleObsoleteAttributeObsoleteAttribute
ToolStripMenuItem tsAClassSampleSerializableJSONHelpInfo
ToolStripMenuItem tsAClassSampleSerializableJsonIgnoreAttribute
ToolStripMenuItem tsAClassSampleSerializableFW481DataContractSerializer
ToolStripDropDownButton tsAMicrosoftKI
ToolStripMenuItem tsAMicrosoftKISample001
ToolStripSeparator toolStripSeparator1
ToolStripSeparator toolStripSeparator4
ToolStripMenuItem tsACSharpVersionTokenEqGt
ToolStripSeparator toolStripSeparator5
ToolStripMenuItem tsAClassSampleEnum
ToolStripMenuItem tsAClassSampleEnumConvert
ToolStripSeparator toolStripSeparator6
ToolStripMenuItem tsACSharpVersion_014_Default
ToolStripMenuItem tsAClassSampleSynchAsyncCall004AsyncTaskMethode
ToolStripMenuItem tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest
ToolStripMenuItem tsACSharpVersionOperatorTernaryConditional
ToolStripMenuItem tsAClassSampleDataSet
ToolStripMenuItem tsAClassSampleDataSetInsertRecordToDataSet
ToolStripMenuItem tsAClassSampleList
ToolStripMenuItem tsAClassSampleListWithNTupel
ToolStripMenuItem tsAClassSampleDataDataOperation001
ToolStripMenuItem tsACSharpVersionOverrideMethode
ToolStripMenuItem tsAClassSampleSerializableJSONOptionNet90
TextBox tbMenuBasePathAndFile
Label label1
ToolStripMenuItem tsAClassSampleParallelForEach003
TextBox tbDirectoryTemp
Label label2
ToolStripMenuItem tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter
ToolStripMenuItem tsAClassSampleEnumDictionaryFunctions
ToolStripMenuItem tsAClassGenerica
ToolStripMenuItem tsAClassGenericaCheckGenericType
ToolStripMenuItem tsACSharpVersion_CSharp13_LINQ
ToolStripMenuItem tsACSharpVersion_CSharp13_ParamsCollections
ToolStripMenuItem tsACSharpVersion_CSharp13_ThreadingLock
ToolStripMenuItem tsACSharpVersion_CSharp13_ThreadingLockASYNC
Button btnViewXmlDescription
ToolStripMenuItem tsACSharpVersion_CSharp13_PartialClassMembers
ToolStripMenuItem tsACSharpVersion_014_LambdaParameterMod

Static Private Attributes

static string _GlobalReturnValue = string.Empty
static int _GlobalValueCount = 0

Detailed Description

Main-Form für diese Anwendung.

Main-Dialog

Version:

16.03.2026: frmDotNetSamples Umstellung auf neue Version .Net SDK-10 C# 14. Auf neue SDK-Version und C#-Version umgestellt in den Projekt Eigenschaften.
08.07.2025: frmDotNetSamples Aktualisierte Version für den Einsatz mit Doxygen! Auch die App: D:\FHO_Tool\fho.frm.net.NetStudioSearchToDo musste entsprechend angepasst werden. In diesem Sample sind die zwingenden Angaben für Version und ToDo zu sehen.
30.06.2025: frmDotNetSamples In dieser Sample-Application werden permanent Neuerungen und/oder Erweiterungen aus der .Net C# Entwicklungs-Umgebung implementiert. Auch enthält diese Sample-Application viele Design-Muster zur Hilfe als Vorlage
14.08.2024: frmDotNetSamples HelperToolTippText: Aus dem App.-Startup-Pfad\tooltipptext werden *.txt Dateien eingelesen, wenn der Name der Datei dem Control-Namen entspricht. Dadurch können freie Zusatztexte zu den einzelnen Controls und deren Informationen aus der *.json ausgegeben werden. Implementierung Neuerungen zu Prject:fho.frm.net.NetStudioSearchToDo

ToDo:

dd.mm.yyyy frmDotNetSamples Es können aktuelle ToDo erfasst werden.

ReadMe:

Neuerungen in Visual Studio 2022
Versionshinweise zu Visual Studio 2022
Task.Run Method
Task<TResult> Class
Task-based asynchronous programming
Asynchrone Programmierung mit async und await
Class Programm => Main() Methoden-Signaturen

Constructor & Destructor Documentation

◆ frmDotNetSamples()

fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.frmDotNetSamples ( )

Standard Constructor.

Suchen und Anzeigen der Assembly-Versionen

Configuration-File: App.config Extras => NuGet => Paketmanager => System.Configuration.ConfigurationManager

Member Function Documentation

◆ btnViewXmlDescription_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.btnViewXmlDescription_Click ( object sender,
EventArgs e )
private

Anzeigen XML Description-File aus Project. Darin sind alle XML-Kommentare vorhanden.

Parameters
sender
e

◆ Dispose() [1/2]

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.Dispose ( )
private

INF: 04.03.2025 => Das ist aber ganz schön schräg!!!! =>pragma warning disable CS0108 in .editorconfig.

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks:

In der FW-Version wird sogar eine Anmerkung ausgegeben, dass in der .editorconfig Datei eine DISABLE-Option aktiv ist.

[*.{cs,vb}] dotnet_diagnostic.IDE1006.severity = none dotnet_diagnostic.CS0108.severity = none

Dieser #error version pragma-Eintrag zeigt dann die aktuelle Compiler- und / Sprach-Verison in der Fehlermeldung

◆ Dispose() [2/2]

override void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.Dispose ( bool disposing)
protected

Clean up any resources being used.

Parameters
disposingtrue if managed resources should be disposed; otherwise, false.

◆ FrmAsyncSamples_FormClosed()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.FrmAsyncSamples_FormClosed ( object sender,
FormClosedEventArgs e )
private

Form-Close.

Parameters
sender
e

◆ FrmAsyncSamples_KeyDown()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.FrmAsyncSamples_KeyDown ( object sender,
KeyEventArgs e )
private

Form Key-Down.

Parameters
sender
e

◆ FrmAsyncSamples_Load()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.FrmAsyncSamples_Load ( object sender,
EventArgs e )
private

Form-Load.

Parameters
senderthis.Load
ethis.Load

In dieser Form-Load Methode ist eine spez. Function implementiert, welche die Tool Tipp-Texte aus einem JSON-File einlesen und zuordnen kann.

Form Load-Methode

Siehe Klasse: SampleReadControlToolStrip

Impl. Logik f�r App.config File

Sample zu NameValueCollection

Erstellen/Löschen menubase.txt File

Erstellen Tool-Tipp Text aus ASCII resp. JSON-File

Read ASCII-File (JSON)

Deserialize

Read ToolStrip-Control und setzen der Tool-Tip Beschreibung 18.02.2025 => Korrektur Read-Controls für Trennlinie

Achtung: Alles was an diesem Punkt an Tool-Tipp beschrieben wird, wird angezeigt weil es die letzte Aktion in diesem Bereich ist.

  1. fho.frm.net.Microsoft_DotNetSamples.json
  2. FileInfo(Path.Combine($"{Application.StartupPath}\tooltipptext", $"{_ModelToolTippText.ControlName}.txt"));
  3. Texte aus diesem Bereich werden am Schluss in die Controls übernommen.

tsA_TaskFromResult_Sample001. tsA_TaskFromResult_Sample002.

◆ InitializeComponent()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.InitializeComponent ( )
private

Required method for Designer support - do not modify the contents of this method with the code editor.

◆ ReceiveDatav2100()

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.ReceiveDatav2100 ( )
staticprivate

Methode zu tsAClassSampleThreadingStartThread002_Click.

Returns

Bytes empfangen von: IP-ANY

Bytes mit der UTF8-Kodierung in das Textformat kodieren.

Output Screen

Splitt Received-Data

CMD

Send Status

◆ tsA_Close_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_Close_Click ( object sender,
EventArgs e )
private

tsA_Close

Parameters
sender
e

◆ tsA_Standard_Sample001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_Standard_Sample001_Click ( object sender,
EventArgs e )
private

Menu: Standard (SYNCH) : Standard (001).

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleNormal

◆ tsA_TaskFromResult_Sample001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample001_Click ( object sender,
EventArgs e )
private

Menu: Task.FromResult Samples : Task.FromResult (001).

Calculation Anzahl-Bytes aller Files in definierten Verzeichnissen. Bescheribung siehe ToolTipText

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskFromResult

◆ tsA_TaskFromResult_Sample002_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample002_Click ( object sender,
EventArgs e )
private

Menu: Task.FromResult Samples : Task.FromResult (002).

ASYNC Calculation Anzahl-Bytes aller Files in definierten Verzeichnissen. Bescheribung siehe ToolTipText

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskFromResult

◆ tsA_TaskFromResult_Sample003_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample003_Click ( object sender,
EventArgs e )
private

Menu: Task.FromResult Samples : Task.FromResult (003).

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks: Es wurde eine Task.Run()-Methode mit AWAIT und einem Thread.Sleep(yyyy) implementiert

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskFromResult

◆ tsA_TaskRun_Sample001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample001_Click ( object sender,
EventArgs e )
private

Menu: Task.Run Samples: Task.Run (001).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Optionen:

Option-1: ASYNC

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun für verschiedene Methoden zum Thema

awaitable Methode wird ausgeführt => fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun._GetAsyncStringAsReturn001() Der Dialog bleibt während der Ausführung offen, soweit also async und awaitable

Option-2: SYNCH

Task mit Lambda-Expression, kein async und/oder await. [Thread.Sleep(5000)]

Die Task<TResult>-Klasse stellt einen einzelnen Vorgang dar, der einen Wert zurückgibt und in der Regel asynchron ausgeführt wird. Innerhalb des Task.Run() ist eine Lambda-Expression definiert mit Thread.Sleep(5000). Während der Ausführung bleibt der Dialog blockiert.

Option-3: ASYNCH

Definition: string _TaskOption03 = await Task.Run(): => Kein Task.Result nötig, da Result bereits in x (string) vorhanden.

Die Lambda-Expression im Code-Bereich des Task wird sync ausgeführt. Methode wird async ausgeführt, und der Dialog bleibt offen.

Option-4: ASYNCH

Definition: Task<string> _TaskOption04 = Task.Run(): Ausführung: await _TaskOption04 und Auswertung-Result: [_TaskOption04.Result] => Lambda-Expression: sync

Die Task<TResult>-Klasse stellt einen einzelnen Vorgang dar, der einen Wert zurückgibt und in der Regel asynchron ausgeführt wird. Innerhalb des Task.Run() ist eine Lambda-Expression definiert mit Thread.Sleep(5000).

Help: https://learn.microsoft.com/de-de/dotnet/api/system.threading.tasks.task-1?view=net-9.0

Option-5: ASYNCH

Definition: Task<string> _TaskOption05 = Task.Run<string>(async() => .....:

Die Task<TResult>-Klasse stellt einen einzelnen Vorgang dar, der einen Wert zurückgibt und in der Regel asynchron ausgeführt wird. Innerhalb des Task.Run() ist eine async Lambda-Expression definiert mit await Task.Delay(5000).

Help: https://learn.microsoft.com/de-de/dotnet/api/system.threading.tasks.task-1?view=net-9.0

Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsA_TaskRun_Sample002_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample002_Click ( object sender,
EventArgs e )
private

Menu: Task.Run Samples: Task.Run (002).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Optionen:

Option-1:

Ausführen awaitable Methode: _GetAsyncStringAsReturn002

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun

Eine etwas andere Darstellung (Definition) als Option-1 bei tsA_TaskRun_Sample001_Click. Operator await wird direkt ausgeführt. Einfach eine etwas andere Darstellung (weniger Code). Am Ende aber eigentlich das selbe Result. Dialog bleibt offen während Ausführung!

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsA_TaskRun_Sample003_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample003_Click ( object sender,
EventArgs e )
private

Menu: Task.Run Samples: Task.Run (003).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Optionen:

Option-1:

Ausführen awaitable Methode: _GetAsyncStringAsReturn003

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun

Achtung: Keine asynchrone Ausführung der Anwendung obwohl mit Task definiert. Ausgeführt wird die Methode _Methode001() aus dieser Klasse. Dabei wird ein Form geöffent und mit einem Thread.Sleep(5000) gewartet.Dabei bleibt allerdings der Dialog (Main blockiert). Die Methode Task.Wait() wartet bis alle Operationen beendent sind!

_Task.Wait(CancellationToken.None)

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsA_TaskRun_Sample004_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample004_Click ( object sender,
EventArgs e )
private

Menu: Task.Run Samples: Task.Run (004).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Optionen:

Option-1:

_Methode001() nicht awaitable

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun

Methode wird async ausgeführt, da der Task.Run() als => await Taks.Run() definiert wurde. Zudem is die Methode tsA_TaskRun_Sample004_Click() als async deklariert. Der Dialog bleibt also offen!

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsA_TaskRun_Sample005_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample005_Click ( object sender,
EventArgs e )
private

Task.Run() und Task.Factory.StartNew() => Menu: Task.Run Samples: Task.Run (005).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Cancellation-Token: https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children

Die Problematik eines Cancellation-Tokens funktioniert in dieser Logik nicht. Es gibt nichts was in einem LOOP-Läuft, und in jeder Iteration prüft ob das Cancel-Ereignis eingetreten ist! In der Methode [tsA_TaskRun_Sample006_Click()] ist das Problem genau zu sehen!

Optionen:

Option-1:

Definition: Task<string> _TaskRunningA = Task<string>(....

string _TaskRunningResultA = await _TaskRunningA;

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun: Methode _Methode001()

Option-2:

Definition: string _TaskRunningResultB = await Task<string>(......

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun: Methode _Methode001()

Option-3:

Definition: string _ReturnFromTaskFactory = await Task.Factory.StartNew<string>(........

Klasse: fho.frm.net.Microsoft_DotNetSamples.ClassMethode.SampleTaskRun: Methode _Methode001() Grundsätzlich alles gleich, bis auf Task.Factory.StartNew(.....

Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsA_TaskRun_Sample006_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample006_Click ( object sender,
EventArgs e )
private

Task.Run() mit Cancellation-Token => Menu: Task.Run Samples: Task.Run (006).

Parameters
sender
e

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTaskRun

Das Ganze basiert auf der Logik, dass eine Schlaufe immer wieder den Zustand [IsCancellationRequested] pr�ft. Nur dann kann der Cancel-Event auch ausgel�st werden.

https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children https://learn.microsoft.com/de-de/dotnet/standard/parallel-programming/task-cancellation?source=recommendations

Optionen:

Option-1:

Code Task in Option-1 implementiert

Task direkt implementiert mit .Run und Lambda-Ausdruck

Option-2:

Code Task gekapselt in Wrapper:tsA_TaskRun_Sample006_Click_TaskWrapper()

Task in einer externen Methode (Wrapper) gekapselt.

Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Der Basis-Code der Methode:

Instanziieren eines CancellationTokenSource-Objekt, das die Abbruchbenachrichtigung verwaltet und an die einzelnen Abbruchtoken sendet.
Übergeben des zurückgegebenden Token über die CancellationTokenSource.Token-Eigenschaft an jede Aufgabe oder Thread,
der zum Lauschen verwendet wird, um den Abbruch zu bemerken.
Instancen für _task und _TaskWrapperAwait
Wenn Option-1 => Cheched=True
Wenn Option-2 => Cheched=True
Anfordernde-Methode, warten bis Cancel(). Nach der Wartezeit
wird der .Cancel ausgeführt.
Anfordernde-Methode => Cancel ausführen
Option-1 => await
Option-2 => await _TaskWrapperAwait

◆ tsA_TaskRun_Sample006_Click_TaskWrapper()

Task fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample006_Click_TaskWrapper ( CancellationTokenSource _CancellationTokenSource,
CancellationToken _CancellationToken )
private

Wrapper Task.Run() aus tsA_TaskRun_Sample006_Click().

Parameters
_CancellationTokenSource
_CancellationToken
Returns

Prüft bei jedem Durchgang den Zustand des Cancellation-Token Wann ändert sich der Zustand des Token??

◆ tsA_TaskRun_Sample007_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample007_Click ( object sender,
EventArgs e )
private

(1) Task.Run() Sample mit einem Cancellation-Token.

Parameters
sender
e

Funktion Das Ganze basiert auf der Logik, dass eine Schleife (while) immer wieder den Zustand [IsCancellationRequested] prüft. Nur dann kann mittel der Eigenschaft [IsCancellationRequested=TRUE] ein Cancel-Event ausgelöst werden, und der Ganze Prozess beendet werden. Damit das Sample auch funktioniert, sind die Task.Run() Methode und das setzen der [IsCancellationRequested=TRUE] Eigenschaft auf 2 separate Menüpositionen gelegt worden.

Abbrechen einer Aufgabe (Task) https://learn.microsoft.com/de-de/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children
Task-Abbruch https://learn.microsoft.com/de-de/dotnet/standard/parallel-programming/task-cancellation?source=recommendations

◆ tsA_TaskRun_Sample007_Click_TaskWrapper()

Task fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample007_Click_TaskWrapper ( CancellationTokenSource _CancellationTokenSource,
CancellationToken _CancellationToken )
private

(2) Implementiert (kapselt) die Ausführende Methode im Sample mit CancellationTokenSource und CancellationToken

Parameters
_CancellationTokenSourceInstance von CancellationTokenSource
_CancellationTokenInstance von CancellationToken
Returns
Task-Warpper
Global-Value [static]: Die einzige Möglichkeit die Loops zu zählen und in die Ausgabe zu übergeben.

◆ tsA_TaskRun_Sample007Cancel_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample007Cancel_Click ( object sender,
EventArgs e )
private

(3) Der Cancel-Befehl! => Setzen der Eigenschaft [IsCancellationRequested=TRUE]

Erst nachdem das Ganze Microsoft-Sample auf 3-Methode ausgelagert wurde, können die einzelnen Elemente auch entsprechend angewendet und logisch nachvollzogen werden. Bleibt man beim Microsoft-Sample so wie in tsA_TaskRun_Sample006_Click() [siehe Option-1] beschrieben, macht das Ganze eingentlich keinen wirklichen Sinn!

Parameters
sender
e
Ausführen Methode .Cancel()

◆ tsAClassDelegateDelegateAction_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDelegateDelegateAction_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Delegate : Delegate Action.

Wie bei Action bereits festgestellt, es gibt keinen Return-Value! SampleLambdaExpression001._Lambda003

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassDelegateDelegateFunc_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDelegateDelegateFunc_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Delegate : Delegate Func.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassDependencyInjection001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDependencyInjection001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Dependency-Injection : Dependency-Injection-001.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
  • cbOption01.Checked Dependency-Injection

Dependency-Injection

◆ tsAClassDesignPattern001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample001.

MyClassDesignPatternSample01 Soweit in Ordnung

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Macht doch soweit Sinn, und kann eingesetzt werden! Die einzelnen Methoden innerhalb _TaskRunSample001Async() werden SYNCH verarbeitet. Keine Parallele Ausf�hrung

MyClassDesignPatternSample01._TaskRunSample002_001()

MyClassDesignPatternSample01._TaskRunSample002_002_vXXXX()

v1.0.0.0 => nur SYNC v1.0.0.1 => ASYNC!!

MyClassDesignPatternSample01._TaskRunSample002_003()

◆ tsAClassDesignPattern002_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern002_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample002.

KEINE IMPLEMENTIERUNG VORHANDEN. KLASSE MyClassDesignPatternSample02 DELETED!!

async entfernt.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassDesignPattern003_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern003_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample003.

MyClassDesignPatternSample03 Diese Klasse ist OK, und kann als Desing-Vorlage verwendet werden.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

MyClassDesignPatternSample03._ExecuteFuncViewTaskDialog001Async()

MyClassDesignPatternSample03._ExecuteFuncViewTaskDialog002Async()

◆ tsAClassDesignPattern004_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern004_Click ( object sender,
EventArgs e )
private

INF: 24.10.2024 => Design-Pattern für Awaitable [tsAClassDesignPattern004_Click()] [MyClassDesignPatternSample04].

Menu: Any Samples : Class Design-Pattern : MyClassDesignPatternSample004 ==> Diese Klasse ist OK, und kann als Desing-Vorlage verwendet werden.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Siehe auch Class: MyClassDesignPatternSample04 (AnyClass Design-Pattern 004)

Geht der Frage nach, kann eine Standard-Methode [_MakeAwaitableMainTaskProcess()] zu Awaitable/Asynchrone gemacht werden?

Die Antwort ist JA => es braucht einfach mehr als nur eine Task-Methode im Design!

Dieses Design-Muster könnte beim Umbau des FW 4.8 auf .Net-8.0 DataBase-Tool eingesetzt werden.

Option-1 START

Option-2 CANCELLATION

◆ tsAClassGenericaCheckGenericType_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassGenericaCheckGenericType_Click ( object sender,
EventArgs e )
private
Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Gibt Fehler, da diese Methode einen Constraint [class] (Einschränkung) hat

◆ tsAClassInterface001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassInterface001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Interface : Interface-001.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
  • cbOption01.Checked Interface

Dependency-Injection

◆ tsAClassSampleDataDataOperation001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDataDataOperation001_Click ( object sender,
EventArgs e )
private

IntelliCode und Autovervollständigung der Code-Zeilen.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Zu beachten sind die Einstellungen im Visual-Studio:

  • Extras => Optionen
  • Bereich: Github => Copilot => Copilot-Vervollständigungen
  • Bereich: IntelliCode => Automatically generated code completitions in Editor

Dieser Bereich wurde angelegt nach dem Update auf 17.14.7! Ab dann war eine komische und wirklich nervige Code-Vervollständigung aktiv! Es gab wirklich erschrekende Code Vorschläge, einfach nur Schrottig!!

Sample: List<DataRow> _huhu = new List<DataRow>()

Instance => List<DataRow> _huhu = new List<DataRow>()

DataSet / DataTable

◆ tsAClassSampleDataSetInsertRecordToDataSet_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDataSetInsertRecordToDataSet_Click ( object sender,
EventArgs e )
private

Exxas-Client => Einlesen CSV-File (Preisliste Microsoft) und save in DataSet.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Siehe zu diesem Thema auch die ganzen Base-Classes!

Ab diesem Punkt beginnt die Methode:

  1. => Erstellen DataSet / DataTable
  2. => Anlegen Columns in DataSet/DataTable: SampleDataSetOperation._CreateTableSampleData()

1.

2.

=> Erstelle Sample-Record der Class SampleCSVAddressData. Ist die gleiche Basis-Klasse wie für den Import der externen CSV-Daten.

Datensatz einfügen in DataSet

Definition der externen CSV-Datei

Externe CSV-Datei einlesen in Class DataModel: List<SampleCSVAddressData>

Datensätze aus DataModel in DataSet übetragen

Definition der externen CSV-Datei

Externe CSV-Datei einlesen in Class DataModel: List<SampleCSVAddressData>

Datensätze aus DataModel in DataSet übetragen

Definition der externen CSV-Datei

Externe CSV-Datei einlesen in Class DataModel: List<SampleCSVAddressData>

Datensätze aus DataModel in DataSet übetragen

Ausgabe der Datensätze aus DataSet in Dialog

◆ tsAClassSampleDiversAwaitable001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDiversAwaitable001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Diverse : AWAITABLE-001.

Keine dieser Klassen / Varianten sind ASYNCHRON und/oder erlauben eine solche Verarbeitung. Es wird gezeigt (versucht) eine als AWAITABLE zu implementieren. Habe das mit dem ASYNC nochmals geprüft (24.10.2024)m Option-1 mit Thread-Sleep im GetResult() blockiert das Dialog, und ist nicht ASYNC!

Macht eigentlich keinen wirklichen Sinn!

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Ausf�hren der Methode GetAwaiter() aus der Class::MyObject => await zwingt Methode GetAwaiter() zur Ausf�hrung und �ffnet frmTaskView-Dialog (kein ASYNC) und keine Daten im TextFeld

Ausf�hren einer static Methode aus der Class::MyObject await bezieht sich in diesem Sample auf Task.Run(), und nicht auf die GetAwaiterStatic()-Methode (keine awaitable Funktion). Durch diese Implementierung ist es scheissegal was in MyObject-Class implementiert ist! Dialog => frmTaskView-Dialog wir nie ausgef�hrt!

Darstellung eigentlich nicht als Lambda-Audruck

Implementierung mit MyAwaiter-Class Die Klasse MyAwaiter implementiert alles was es f�r eine awaitable Klasse braucht. Es kann aber in dieser Form keine ASYNC Verarbeitung gestartet werden. Dialog, alles bleibt gesperrt, denn wir sind immer noch im gleichen Thread!

Implementierung mit MyAwaiter-Class Es ist so wie es geschrieben wird! Ein awaitable-class ist nicht ASYNC zu verwenden! Gem�ss diesem Sample ist die ganze Logik zum ASYNC in diesem Code-Abschnitt.

Achtung: Diese Ganze MyAwaiter-Klassen Logik bringt irgendwie einfach nicht wirklich etwas!

SYNC: Variante: 3.1 GetResult()

ASYNC: Variante: 3.2 GetResult() Achtung: Eigenschaft [.Result] ist nur bei Task verwendbar

SYNC: Variante: 3.1 GetResult()

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

ASYNC: Ausf�hrung Methode ist ASYNC

SYNCH: Dialog ist blockiert

SYNCH: Dialog ist blockiert

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

Design: (async () => ASYNC: Ausf�hrung Methode ist ASYNC

Wird als ASYNCH ausgef�hrt, kein Blockade beim Dialog

Design: (async () => Wird als ASYNCH ausgef�hrt, kein Blockade beim Dialog

◆ tsAClassSampleEnumConvert_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleEnumConvert_Click ( object sender,
EventArgs e )
private

CHK: 16.09.2025 => No Display Ouput Enum-Convert / Konvertierung mit ENUM.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Auslesen Elemente Framework-Versionen

◆ tsAClassSampleEnumDictionaryFunctions_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleEnumDictionaryFunctions_Click ( object sender,
EventArgs e )
private

Suchfunktionen mit ENUM und Dictionary sowie KeyValuePair-Methode.

Parameters
sender
e

Optionen:

Option-1:

Search Pin-Name (GpioConnector) from Pin-Name String

Search Pin-Name (GpioConnector) from Pin-Name String

KeyValuePair<GpioConnector, string> _KeyValuePairPinName = SampleEnumOperations._GpioConnectorSearchPinName("GPIO_02_P1Pin3_SDA")

Option-2:

Prüfen ob der gesuchte Connector-Pin bereits in der Dispose-Liste vorhanden ist

Prüfen ob der gesuchte Connector-Pin bereits in der Dispose-Liste vorhanden ist

bool _IsKeyInData = SampleEnumOperations._GpioConnectorCheckKey(3)

Option-3:

Suchen GpioConnection in Dictionary mit Key-Number

Suchen GpioConnection in Dictionary mit Key-Number

KeyValuePair>Int32, GpioConnector< _KeyValuePairPinName = SampleEnumOperations._GpioConnectorSearchKey(17)

Option-4:

Suchen Pin-Nummer des GpioConector mit dem ENUM-Bezeichner

Suchen Pin-Nummer des GpioConector mit dem ENUM-Bezeichner

Int32 _ConnectorPinNumber = SampleEnumOperations._GpioConnectorSearchNumber(GpioConnector.GPIO_19_P1Pin35_PCM_FS)

Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleExceptionUserException001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleExceptionUserException001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Exception : User-Exception 001.

Erstellen eigener Exceptions

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleExtensionSample001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleExtensionSample001_Click ( object sender,
EventArgs e )
private

INF: 06.01.2025 => [SampleExtensionImplement::tsAClassSampleExtensionSample001_Click] Extension-Methodes und deren Implementierung.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleLambda001Lambda001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Lambda-001 : Lambda-001 Function (FUNC) mit benannter Methode und eine Variante mit einem Lambda-Ausdruck.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleLambdaExpression001

◆ tsAClassSampleLambda001Lambda002_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda002_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Lambda-001 : Lambda-002 Implementierung von FUNC-Varianten. K�nnte so auch f�r Programm-Varianten anstelle eines Interface verwendet werden.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleLambdaExpression001

◆ tsAClassSampleLambda001Lambda003_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda003_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Lambda-001 : Lambda-003 Implementierung mit Action. Leider ist der delegate nur VOID Siehe auch SampleDelegateAction, kein Return.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleLambdaExpression001

◆ tsAClassSampleLambda001Lambda004_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda004_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Lambda-001 : Lambda-004.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleLambdaExpression001

  • cbOption01.Checked nicht ASYNC, normale Verarbeitung
  • cbOption02.Checked ASYNC Verarbeitung
  • cbOption03.Checked ASYNC Verarbeitung
  • cbOption04.Checked Nicht ASYNC Verarbeitung (Direkte Ausf�hrung der _SearchMemberOfPersonLambda()-Methode. In diesem Falle also keine ASYNC-Ausf�hrung)

Nicht ASYNC, normale Verarbeitung

ASYNC Verarbeitung

ASYNC Verarbeitung

Nicht ASYNC Verarbeitung Direkte Ausf�hrung der _SearchMemberOfPersonLambda()-Methode. In diesem Falle also keine ASYNC-Ausf�hrung

◆ tsAClassSampleListWithNTupel_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleListWithNTupel_Click ( object sender,
EventArgs e )
private

Der Ganze Begriff in der Klammer (string _CustomerName, string _Scanserver) ist Generic <T>.

Parameters
sender
e

Optionen:

Option-1:

List<(string _CustomerName, string _Scanserver)>

Option-2:

SortedList<string, string>

Option-3: List<Tuple<string, string>>
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Liste mit Daten befüllen Ausgabe und Anzeigen der Daten.Der Ganze Begriff in der Klammer ist Generic <T>

Liste mit Daten befüllen

Liste mit Daten befüllen

◆ tsAClassSampleObjectManagerObjectManager001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObjectManagerObjectManager001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Object-Manager : Object-Manager 001.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Implementiert ISerializable-Interface nicht!

Implementiert ISerializable-Interface! aber gibt Fehler bei [mgr.RegisterObject(_TestClassB, 199, si);]

◆ tsAClassSampleObsoleteAttributeObsoleteAttribute_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObsoleteAttributeObsoleteAttribute_Click ( object sender,
EventArgs e )
private

INF: 14.01.2025 => [SampleObsoleteAttribute::tsAClassSampleObsoleteAttributeObsoleteAttribute_Click] Obsolete-Attribute Objects tsAClassSampleObsoleteAttribute Diverses_ObsoleteAttribute.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

https://learn.microsoft.com/de-de/dotnet/api/system.obsoleteattribute?view=net-8.0

Auslesen Elemente Framework-Versionen

◆ tsAClassSampleParallelForEach001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach001_Click ( object sender,
EventArgs e )
private

Vergleich Parallel-ForEach/Async/ForEach Vergleich bei Berechnung der Byte-Kapazitäten von einzelnen Dateien.

Parameters
sender
e

Optionen:

Option-1:_RunningParallel1001()

Methode: async Task await Task.Run() mit einer Parallel.ForEach Schleife mit Stream-Writer zum Berechnen der Byte-Kapazität aller selektierter Dateien

Option-2:_RunningParallel1002()

Methode: Task Parallel.ForEach Schleife mit Stream-Writer zum Berechnen der Byte-Kapazität aller selektierter Dateien

Option-3:_RunningParallel2001()

async Task await Task.Run() mit einer Parallel.ForEach Schleife mit Stream-Writer zum Berechnen der Byte-Kapazität aller selektierter Dateien

Option-4:_RunningParallel3001()

async Task await Task.Run() mit einer einfachen foreach-Schleife mit Stream-Writer zum Berechnen der Byte-Kapazität aller selektierter Dateien

Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Info / todo:

Caching

Das hat mit dem Problem des Caching wohl nichts zu tun. Denke, dass das eine Eigenschaft der SSD und deren Logik ist.

Link: https://learn.microsoft.com/de-de/dotnet/standard/garbage-collection/fundamentals

Namespace

fho.frm.net.Microsoft_DotNetSamples.ClassMethode

Class: MyClassForEachParallel

Informationen im Code

Verzeichnis für Verarbeitung
Caching (NuGet)
Ausgabe Informationen zum Search: _CalcFileDirectory
Instance MyClassForEachParallel und ParallelOptions

◆ tsAClassSampleParallelForEach002_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach002_Click ( object sender,
EventArgs e )
private

SampleForEachParallel._RunningParallelMicrostepperv2000: Axis-Calculation f�r CNC.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Calculation Wait-Time for X-Axis and Y-Axis

◆ tsAClassSampleParallelForEach003_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach003_Click ( object sender,
EventArgs e )
private

INC: 29.09.2025 [tsAClassSampleParallelForEach003_Click] => Aktueller ToDo => tsAClassSampleParallelForEach003_Click Vergleich Parallel-ForEach/Async/ForEach Vergleich beim Schreiben von Text-Dateien auf Disk.

Parameters
sender
e

Optionen:

Option-1:

Methode:async Task:_RunningParallel1001()

await Task.Run() mit einer Parallel.ForEach Schleife mit Stream-Writer zum Schreiben Text-Dateien.

Option-2:

Methode:Task:_RunningParallel1002()

Parallel.ForEach Schleife mit Stream-Writer zum Schreiben Text-Dateien.

Option-3:

async Task:_RunningParallel2001()

await Task.Run() mit einer Parallel.ForEach Schleife mit Stream-Writer zum Schreiben Text-Dateien.

Option-4:

async Task:_RunningParallel3001()

await Task.Run() mit einer foreach-Schleife mit Stream-Writer zum Schreiben Text-Dateien.

Option-5:

async Task:_RunningParallel4001()

Eine foreach-Schleife mit await Task.Run() p/FileInfo mit Stream-Writer zum Schreiben Text-Dateien.

Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
Verzeichnis für Verarbeitung
Instance MyClassForEachParallel und ParallelOptions

◆ tsAClassSamplePropertyCreateClass001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSamplePropertyCreateClass001_Click ( object sender,
EventArgs e )
private

Dynamic Create-Class.

INC: 05.02.2026 [tsAClassSamplePropertyCreateClass001_Click] => CreateClassDynamic._CreatePropertyClassCustomAttributeBuilderMicrosoft()=>Das passt alles noch nicht ganz!!!!

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Angewendet im Projekt: D:\symTool\sym.frm.net.Tool_CreateSqlCode

  • cbOption01.Checked CreateClassDynamic._CreatePropertyClass()
  • cbOption02.Checked CreateClassDynamic._CreatePropertyClassCustomAttributeBuilder()
  • cbOption03.Checked FHO: 11.03.2024 => ToDo, m�sste jetzt analysiert werden.

Class-Builder und Property

v1.0.0.0

v2.0.0.0

Class / Custom-Attribute

Class / Custom-Attribute => Microsoft-Sample

Assembly-Builder mit Ausführung einer Methode

Property-Builder: Abhängig vom Assembly-Builder kann dann der Propert-Builder eingesetzt werden

Microsoft-Sample DynamicObject

Implementierungen mit using und einer vorhandenen DLL. Also grundsätzlich nichts dynamisches!

Implementierungen mit using und einer vorhandenen DLL. Also grundsätzlich nichts dynamisches!

◆ tsAClassSampleReadControlgBoxL_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleReadControlgBoxL_Click ( object sender,
EventArgs e )
private

Class-Control: Wie können Werte aus einer Control-Class (Object:System.Windows.Forms.CheckBox) ausgelesen werden.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
cbOption01.Checked

[tsAClassSampleReadControlgBoxL_Click()] Ausführung der Task-Run() Methode erst nach xxx.Result Beinhaltet eine lokale implementierung zum Durchsuchen von Controls nach Typen wie: System.Windows.Forms.RadioButton etc. Durch diese Art des Codes innerhalb der Task-Run Methode wird dieser Code nur ausgeführt, nachdem die Eigenschaft _TaskReadControl.Result aktiviert wurde. Daher bleibt der Bildschirm für die Laufzeit auch blokiert.

cbOption02.Checked

Grundsätzlich analoge implementierung der foreach Logik ais Option-1. Unterschied ist der await Operator bei Task.Run(). Mithilfe des await Operators kann diese Version ASYNC ausgeführt werden, also bleibt der Bildschirm offen. Dadurch auch keine Verwendung der Eigenschatf .Result.

cbOption03.Checked

Eine externe Methode aus SampleReadControl._ReadControl() übernimmt die Aufgabe Control Read-Logik. Würde die externe Methode ohne await Task.Run() async ausgeführt, wäre die Methode nicht ASYNC. Nur durch den Einsatz eines zusätzlich Task.Run() mit await und async kann diese Methode als ganzes ASYNC ausgeführt werden.

SYNCH

ASYNC

ASYNC: Ausführen Methode SampleReadControl._ReadControl() mit await Task.Run jetzt ASYNC

◆ tsAClassSampleSerializableFW481DataContractSerializer_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableFW481DataContractSerializer_Click ( object sender,
EventArgs e )
private

DataContract-Serializer aus .Net 8.0 / 9.0.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks:

1. Allgemein Verwenden Sie die DataContractSerializer Klasse zum Serialisieren und Deserialisieren von Instanzen eines Typs in einen XML-Datenstrom oder -Dokument. Sie können z. B. einen Typ Person mit Eigenschaften erstellen, die wesentliche Daten enthalten, z. B. einen Namen und eine Adresse https://learn.microsoft.com/de-de/dotnet/fundamentals/runtime-libraries/system-runtime-serialization-datacontractserializer

2. Problematik: NetDataContractSerializer Das Grundproblem an diesem Punkt ist, dass das Ganze Sample-Project mit aktuell .Net 9.0 erstellt ist (15.09.2025). Das Sample aus [https://learn.microsoft.com/de-de/dotnet/api/system.runtime.serialization.netdatacontractserializer?view=netframework-4.8.1] kann in diesem Projekt nicht implementiert werden! In der aktuellen Version ist der Name der Data-Contract Serializer Klasse => DataContractSerializer(). Besagte Klasse gemäss Beschreibung FW: 4.8.1 ist [NetDataContractSerializer], und ist in .Net 8.0 / 9.0 nicht verfügbar.

3. Option-1: DataContractSerializer Serialisierung einzel Object / Instance. In diesem Sample gibt es nur ein einzelnes Object welches serialisiert wird.

4. Option-2: DataContractSerializer-List Serialisierung n: Object / Instance. Das Sample aus der Option-2 enthält ein List-Object dieser Klasse, also n: Object in der Klasse

Hilfe im Source-Code:

Global Data
Instances für DataContractPerson, 3 Varianten (_PersonA, _PersonB, _PersonC)
_DataContractPersonList und ADD-Data
Settings
Serializer Option-1
Serializer Option-2
Option-1: 1-Object => ausführbare Optionen Selektion
Option-2: N-Objects => ausführbare Optionen Selektion

◆ tsAClassSampleSerializableJSONHelpInfo_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJSONHelpInfo_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Serializable : Serialize JSON-File (Help-Info).

Internal-Function zum Erstellen / Einlesen einer JSON-Datei für die Menu ToolTipp-Texte

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSerializableJsonIgnoreAttribute_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJsonIgnoreAttribute_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Serializable .Net 8.0 Serialize: JsonIgnore-Attribute.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

1. Das reflektionsbasierte Serialisierungsmodul „System.Text.Json“ hat zuvor einen Lazy Loading-Ansatz verwendet, um Eigenschaftsmetadaten aufzulösen. Dieser Ansatz ermöglichte es POCOs, die nicht unterstützte Eigenschaftstypen enthalten, erfolgreich zu deserialisieren, vorausgesetzt, dass der zugrunde liegende JSON nicht an nicht unterstützte Eigenschaften gebunden wurde. (Dies geschah trotz der Tatsache, dass Instanzen desselben Typs nicht serialisiert werden konnten.)

2. Ab .NET 8 wurde das Serialisierungsmodul geändert, sodass alle Eigenschaften sowohl bei der Serialisierung als auch bei der Deserialisierung aufgelöst werden. Diese Änderung wurde vorgenommen, um eine bessere Unterstützung für die Kombination mehrerer Resolver hinzuzufügen, was eine frühzeitige Analyse des serialisierten Typdiagramms erfordert. Eine Begleiterscheinung dieser Änderung besteht darin, dass bei einer Abhängigkeit vom vorherigen Verhalten neue Deserialisierungsfehler zur Runtime angezeigt werden können.

3. Ab .NET 8 löst der gleiche Code wie im Abschnitt Vorheriges Verhalten eine InvalidOperationException aus.

4. System.InvalidOperationException: Der Typ „System.ReadOnlySpan'1[System.Byte]“ der Eigenschaft „Span“ des Typs „NestedValue“ ist für die Serialisierung oder Deserialisierung ungültig, da es sich um einen Zeigertyp oder eine Verweisstruktur handelt oder er generische Parameter enthält, die nicht durch bestimmte Typen ersetzt wurden.

5. Dieser Fehler entspricht dem Fehler, der auch in früheren Versionen ausgelöst wurde, wenn Sie versucht haben, eine Instanz desselben Typs zu serialisieren. Er entspricht auch dem Quellgenerator, was zu einem Kompilierzeitfehler führt.

Scheisse

oberscheisse

◆ tsAClassSampleSerializableJSONOptionNet90_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJSONOptionNet90_Click ( object sender,
EventArgs e )
private

INC: 27.10.2025 [tsAClassSampleSerializableJSONOptionNet90_Click] => Aktueller ToDo => SampleJSONSerializeNet90.

JSON-Serializer aus .Net 9.0, verschiedene Funktionen und Optionen

In dieser Version gibt es für die JSON-Serialisierung neue Funktionen / Methoden und Einstellunge rep. Optionen wie JsonSerializerOptions für eine möglichs optimale Serialisierung.

CHK: 13.08.2025 => JSON-Serialize Option .Net 9.0

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks:

https://learn.microsoft.com/de-de/dotnet/core/whats-new/dotnet-9/overview

cbOption01.Checked
_GetJSONSerializedString
JsonSerializer mit JsonSerializerOptions
cbOption02.Checked
_GetJSONSerializedStringWebOptimized
JsonSerializer mit Darstellung WEB (Camel-Case)
cbOption03.Checked
_GetJSONSerializedStringWebOptimized
JsonSerializer mit JsonSerializerOptions und JsonNamingPolicy
cbOption04.Checked
_GetJSONSerializedStringWebOptimizedOption04
JsonSerializer mit JsonSerializerOptions, async mit Lamdba-Audruck
cbOption05.Checked
_GetJSONSerializedStringWebOptimizedvOption05Async
ASYNC JsonSerializer mit JsonSerializerOptions
cbOption06.Checked
_GetJSONSerializedStringWebOptimizedvOption06Async
ASYNC JsonSerializer mit JsonSerializerOptions

Option-1:

◆ tsAClassSampleSerializableSerializationInfo_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableSerializationInfo_Click ( object sender,
EventArgs e )
private

NEW: 23.01.2025 => NEW: TEST-Methode implementieren .Net DataContractSerializer NEW.

Menu: Any Samples : Serializable : SerializationInfo

Nimm die Symotech Base-Klassen f�r die Serialisierung!

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSynchAsyncCall001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall001_Click ( object sender,
EventArgs e )
private

Asynchrone Methode in Task gekapselt und ohne async und await.

Parameters
sender
e

Optionen:

Option-1:

SampleSynchAsync._CallAsyncMethodeWithoutAwait(): 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 zur Ausführung gebracht werden.

[tsAClassSampleSynchAsyncCall001_Click()] Ausführung der Task-Run() Methode erst nach xxx.Result. Diese Methode kann, muss nicht mit async deklariert sein.

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSynchAsyncCall002_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall002_Click ( object sender,
EventArgs e )
private

Asynchrone Methode mit async und await.

Parameters
sender
e

Optionen:

Option-1: 01.09.2025

(HTTP-Request) Asynchrone Methode mit async und await

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

Der Dialog bleibt während der ganze Zeit offen, und ist nocht blockiert.

Option-2: 29.09.2025

SampleSynchAsync._CallAsyncMethodeWithoutAwait(): (HTTP-Request) SYNCH-Methode in Task.Run() mit async und await (Lambda-Expression).

Die Methode mit dem HTTP-Request ist in einer SYNCH-Methode => SampleSynchAsync._CallAsyncMethodeWithoutAwait() analog tsAClassSampleSynchAsyncCall001_Click().

Durch die Verwendung von Task.Run() async und await, wird diese Methode aber dennoch ASYNC ausgeführt. In dem Lambda-Ausdruck wird eine Warnung ausgegeben, da es keine awaitable Methode gibt. Ist aber kein Problem, und nur eine Warnung, mit einer await Task.Delay(1) Anweisung ist auch dieses Problem gelöst!

Der Dialog bleibt während der ganze Zeit offen, und ist nicht blockiert.

Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSynchAsyncCall003Async_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall003Async_Click ( object sender,
EventArgs e )
private

SYNC-/ASYNC-Operations Class Synch / Async==>Call-003 ASYNC StreamReader()==>tsAClassSampleSynchAsyncCall003Async.

Parameters
sender
e

Links:

AWAIT versus RESULT

Die Result-Eigenschaft ist eine blockierende Eigenschaft. Wenn Sie versuchen, darauf zuzugreifen, bevor die Aufgabe abgeschlossen ist, wird der aktuelle aktive Thread blockiert, bis die Aufgabe abgeschlossen ist und der Wert verfügbar ist. In den meisten Fällen sollten Sie auf den Wert zugreifen, indem Sie „await“ verwenden, anstatt direkt auf die Eigenschaft .Result zuzugreifen.

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/operators/await

Asynchrone Programmierung mit async und await

Task asynchronius programming model TAP: Diese Microsoft-Beschreibung ist nur in englischer Sprache verfügbar. Es geht um:

https://learn.microsoft.com/de-de/dotnet/csharp/asynchronous-programming/

Aufgabenbasiertes asynchrones Muster (TAP) in .NET: Einführung und Übersich

Task asynchronius programming model TAP: Das aufgabenbasierte asynchrone Muster ist in .NET das empfohlene Entwurfsmuster für neue Entwicklungen. Es basiert auf den Typen Task und Task:TResult: im System.Threading.Tasks-Namespace, mit denen asynchrone Vorgänge dargestellt werden.

https://learn.microsoft.com/de-de/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap

Optionen:

Option-1-V1:

Stream-Reader (async) await => Asynchrone: Verarbeitung async mit await. Dialog bleibt frei.

Option-1-V2:

Stream-Reader (async)

Dialog blockiert (mit Thread-Sleep()). Durch die Struktur muss das Resultat mit der Eigenschaft .Result ausgewertet werden. Daher warten bis Programm beendet ist. 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

Option-2

Basis-Methode ist ASYNC und awaitable

Option-3

Warnhinweis dass await-Operator fehlt. Dialog bleibt frei!

https://learn.microsoft.com/de-de/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap

Option-4:

Warnhinweis dass await-Operator fehlt. Dialog ist blockiert.

Stream-Reader in Class::Methode (Helper) implementiert ohne async.(Dialog bleibt blokiert)

Option-5:

Return-Type:

Keine Warnungen. Dialog bleibt frei.

Option-6:

Design-Muster für AWAITABLE

Dialog bleibt frei

Option-7:

Return-Type: IAsyncEnumerable

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

Option-8:

Return-Type: TASK

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

Option-9:

ASYNC: Dieses Besipiel mit List-Task- kommt aus fho.frm_GPIO_Master L298 / TB6600:

So eine Scheisse

Option-10:

ASYNC: SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option04(_FileName)

Mit dieser Implementierung ist der Dialog nicht blockiert, also ASYNC. Es braucht also einen zusätzlichen Task.Run mit einer await;async;await implementierung für einen ASYNC-Vorgang in einer Lambda-Expression

Option-11:

SYNC: SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option04(_FileName)

Mit dieser Implementierung ist der Dialog blockiert, also SYNC. Die Methode [SampleSynchAsync._CallAsyncMethodeStreamReader_Synch_Option04()] wird mit await gestartet, also warten bis diese Methode ausgeführt wurde

◆ tsAClassSampleSynchAsyncCall003Synch_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall003Synch_Click ( object sender,
EventArgs e )
private

SYNC-Operations: Verschiedene Operation in Zusammenhang mit StreamReader-Klasse.

Parameters
sender
e

Optionen:

Option-1

Stream-Reader Lokal in Option-1 implementiert mit Task.Run und async in Task-Signatur (Dialog bleibt blokiert)

Stream-Reader ASYNC mit Task-Methode (Lambda) damit der StreamReader async mit await ausgeführt werden kann.

Option-2

Stream-Reader in Class::Methode implementiert ohne async. (Dialog bleibt blokiert)

CLASS Stream-Reader ASYNC mit Task-Methode (Lambda) in einer externen Methode Achtung: .Result ist in externer Methode

Option-3

Damit kann eine asynchrone Methode mit Task aus einer SYNCH-Methode ausgeführt werden!

Durch den Einsatz von .Result wird einfach auf die Ausführung gewartet (kein ASYNC) , und das Dialog kann nicht benutzt werden. Achtung: .Result wird in lokaler Methode ausgeführt.

Option-4

Stream-Reader Lokal in Option-1 implementiert mit Task.Run und async in Task-Signatur (Dialog bleibt blokiert)

Durch den Einsatz von .Result wird einfach auf die Ausführung gewartet (kein ASYNC) , und das Dialog kann nicht benutzt werden. Achtung: .Result wird in lokaler Methode ausgeführt.

Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSynchAsyncCall004AsyncTaskMethode_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall004AsyncTaskMethode_Click ( object sender,
EventArgs e )
private

Ausführen einer normalen STATIC-BOOL Methode aus einer Klasse (sym.frm.net.Exxas_PowerBi) mit ASYNC-Muster.

Parameters
sender
e

Optionen:

Option-1:

Project: sym.frm.net.Exxas_PowerBi::frmExxasUserWorkingTime::btnVersion1000_Click()

Damit eine bestehende Klasse/Methode (SampleAsyncTaskMethode_PowerBi._CreateUserWorkingTimeInformation()) in einer asynchronen Umgebung ausgeführt werden kann, muss (kann) die Methode SampleAsyncTaskMethode_PowerBi._ProcessingVersion1000Task() verwendet werden.

Dadurch ist es möglich mit der implementierten Version unter Option-1, den ganzen Process als ASYNC-Verarbeitung auszuführen ohne die Blockade des Dialoges. Kann so vor allem da eingesetzt werden, wo bestehende Methoden in einer async Umgebung ausgeführt werden müssen.

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Damit dieser Teil der Anwendung als await ausgeführt werden kann, muss die Methode [_ProcessingVersion1000Task] awaitable sein! Zudem muss im Bereich der Funktion (lambda) auch async definiert sein!

◆ tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest_Click ( object sender,
EventArgs e )
private

Ausführen async-Methode [HelperAsyncRESTRequest._HelperAsyncRequestExxas] in einer nicht asynch Umgebung / Methode.

Parameters
sender
e

Optionen:

Option-1:

SampleAsyncTaskMethode_ExxasClient._CallAsyncMethodeWithoutAwait_from_ExxasClient_LansweeperStart()

Ausführen async-Methode [HelperAsyncRESTRequest._HelperAsyncRequestExxas] in einer nicht asynch Umgebung / Methode. Der ganze Process ist nicht als async deklaraiert, und darf es auch nicht sein.

Die Verarbeitung der REST-Anforderung an EXXAS muss SEQUENTIELL und MAX. 2/SEC ausgeführt werden, ansonten bricht EXXAS die API ab, und blockiert den Zugang für 5-Minuten.

Der Request an Exxas für Authentifizierung muss aber async sein, daher die Task-Methode mit async im Lambda-Ausdruck.

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter_Click ( object sender,
EventArgs e )
private

INC: 29.09.2025 [tsAClassSampleSynchAsyncCall003Async_Click] => Aktueller ToDo => tsAClassSampleSynchAsyncCall003Async_Click::cbOption09.

Parameters
sender
e

Optionen:

Zusammenfassung

Zusammenfassung Optionen 1 bis 4

Es werden 3 Processe zum schreiben einer ASCII-Datei ausgeführt, welche nach einander gestartet werden.

Die beiden Optionen 3 und 4 machen grundsätzlich keinen Sinn! Mit der ASYNC/AWAIT Logik warten die einzelnen Process (Axis: X, Y, Z) immer auf die Beendigung des aktiven Processes, dazu auch die Option AWAIT! Somit macht der Einsatz von lock() einfach keinen Sinn.

Option-1: Task: AWAIT SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainStreamWriter() _IsLockIsActive=FALSE
Option-2: Task: AWAIT SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainStreamWriter() _IsLockIsActive=TRUE
Option-3: Task.Factory: AWAIT SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainFactoryStreamWriter() _IsLockIsActive=FALSE
Option-4: Task.Factory: AWAIT SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainFactoryStreamWriter() _IsLockIsActive=TRUE
Zusammenfassung

Zusammenfassung Optionen 5 bis 8

Es werden 3 Processe zum schreiben einer ASCII-Datei ausgeführt, welche nach einander gestartet werden. Bei den Optionen 5 bis 8 gibt es keinen AWAIT! Also direkter Start der einzelnen Prozesse. Durch die Schreibweise der File-Namen kann grundsätzlich nichts passieren bei der Task-Verarbeitung.

Ist die Option lock() aktiv, werden die Processe immer einzeln pro Axis ausgeführt, also nur sequentiell und nicht parallel und/oder vom System abhängig.

Option-5: Task: SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainStreamWriter() _IsLockIsActive=FALSE
Option-6: Task: SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainStreamWriter() _IsLockIsActive=TRUE
Option-7: Task.Factory: SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainFactoryStreamWriter() _IsLockIsActive=FALSE
Option-8: Task.Factory: SampleSynchAsyncStreamWriter._ExecuteAxisTaskMainFactoryStreamWriter() _IsLockIsActive=TRUE
Option-9:
Option-10:
Option-11:

◆ tsAClassSampleTask001Async001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-001 : Async-001.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTask001

◆ tsAClassSampleTask001Async002_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async002_Click ( object sender,
EventArgs e )
private

INF: 24.10.2024 => Aktuelle Frage nach Task.Run() vs Task.FactoryRun() [frmDotNetSamples:tsAClassSampleTask001Async002_Click()].

Menu: Any Samples : Class Task-001 : Async-002

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

==> Siehe auch Class: MyClassDesignPatternSample04 (AnyClass Design-Pattern 004) Geht der Frage nach, kann eine Standard-Methode [_MakeAwaitableMainTaskProcess()] zu Awaitable gemacht werden

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 )

Das Problem war der Type für den Return-Value muss <Task<string>> sein, da async in der Signatur. Grundsätzlich ist zu sagen, dass mehr auf die linke Seite bei den Return-Type geachtet werden muss. Zusätzlich muss mehr Zeit verwendet werden um etwelche Fehlermeldungen z.B. CS4010 zu verstehen!

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTask001

◆ tsAClassSampleTask001Async003_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async003_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-001 : Async-003.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTask001

◆ tsAClassSampleTask001Async004_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async004_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-001 : Async-004.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTask001

1. ASYNC

2. ASYNC

3. ASYNC

4. Task.Run aber nicht async und await.

◆ tsAClassSampleTask001Async005_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async005_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-001 : Async-005.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Source in Namespace: fho.frm.net.Microsoft_DotNetSamples.ClassMethode Class: SampleTask001

5.

◆ tsAClassSampleTaskViewPERSON_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewPERSON_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-View : Class TaskView-PERSON HelperTaskView-Class (PERSON) Die Logik sowie die Daten f�r die Class Person befindet sich in einer Methode!

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

SYNC: HelperTaskViewSampleFunctions

ASYNC: HelperTaskViewSampleFunctions

SYNC: frmTaskView001

ASYNC: frmTaskView001

◆ tsAClassSampleTaskViewSTRING_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewSTRING_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-View : Class TaskView-STRING => Keine Implementierung HelperTaskView-Class (STRING).

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
  • cbOption01.Checked
  • cbOption02.Checked

◆ tsAClassSampleTaskViewVOID_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewVOID_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Task-View : Class TaskView-VOID => Keine Implementierung HelperTaskView-Class (VOID).

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
  • cbOption01.Checked
  • cbOption02.Checked

◆ tsAClassSampleThreadingStartThread001_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleThreadingStartThread001_Click ( object sender,
EventArgs e )
private

Verschiedene Varianten f�r Thread-Processe.

Parameters
senderSender-Object
eEvent

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Die Versionen Option-1 und Option-2 machen eigentlich in SICH keinen unterschied. Beide Threads werden ganz normal ausgefhrt. Der await-Operator hat absolut keine Auswirkung auf die beiden in der Lambda-Definition enthaltenen Thread-Start.

Option-1

await Task Beide Threads befinden sich in einer Task.Run Lamda Definition. Ein m�glicher Link

Option-2

Ohne await Beide Threads befinden sich in einer Task.Run Lamda Definition.

Option-3

Mit await in 2 verschiedenen Task Diese beiden Task (mit Thread) werden durch await nacheinander ausgef�hrt.

Option-4

Ohne await in 2 verschiedenen Task Diese beiden Task (mit Thread) werden sofort gleichzeitig ausgef�hrt.

await Task:

Beide Threads befinden sich in einer Task.Run Lamda Definition.

Ohne await

Beide Threads befinden sich in einer Task.Run Lamda Definition.

Mit await in 2 verschiedenen Task

Diese beiden Task (mit Thread) werden durch await nacheinander ausgef�hrt.

Ohne await in 2 verschiedenen Task

Diese beiden Task (mit Thread) werden sofort gleichzeitig ausgef�hrt.

◆ tsAClassSampleThreadingStartThread002_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleThreadingStartThread002_Click ( object sender,
EventArgs e )
private

Startet eine UDP-Receive Session. Ausgabe an Debug anstelle Console.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

INF: 23.09.2024 => Implementierung UDP [frmDotNetSamples:tsAClassSampleThreadingStartThread002_Click] ==> UDP-Project (CNC)

Source-Code => D:\symPrototype\000_Network\000_UDP

Thread-Start mit Lambda-Expression und einem Return-Wert aus der Methode. ThreadStart => Methode muss void sein! Die Ausgabe in dieser Implementierung ist nur im DEBUG. zu sehen, also bei der Debug.Ausgabe in der IDE!

Original ohne Lambda-Expression und ohne Return-Value aus Methode ReceiveDatav2000()

Implementierung mit Lambda-Expression.

◆ tsAClassSampleXMLOperationDynamicRead001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleXMLOperationDynamicRead001_Click ( object sender,
EventArgs e )
private

INF: 09.01.2025 => [SampleDynamicXml::tsAClassSampleXMLOperationDynamicRead001_Click] Extension-Methodes und deren Implementierung.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

(D:\ServiceBDA) sym.cls_BDA_Delegate

Primary-File für Xml-Reader (Project)

Auslesen Elemente Framework-Versionen

Auslesen Elemente ohne Einschränkung in ein System.Xml.Linq.XElement Object. Lokale Methode können ausgeführt werden

Auslesen Elemente in XmlTextReader

Auslesen Elemente mit Suchfunktion nach Element und Attribute

Alte-Methode zum einlesen einer XML-Datei aus D:\symProduktiv\symBaseNet\sym.cls.net.core.Configuration! Xml-Reader und Stream

◆ tsAClassSingleton001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSingleton001_Click ( object sender,
EventArgs e )
private

Menu: Any Samples : Class Singelton : Singelton-001.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
  • cbOption01.Checked Sample: Singleton
  • cbOption02.Checked Sample: Mutex

Sample: Singleton

Sample: Mutex

◆ tsACSharpVersion_014_Default_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_014_Default_Click ( object sender,
EventArgs e )
private

C# Version 14.0 / Net 10.0 ==> Siehe Notebook mit VS-2026.

Achtung: C# noch nicht installiert/verfügbar INC: 20.03.2026 [ClassCSharp14::tsACSharpVersion_014_Default_Click] => .Net 10.0 aktiv. C#-14

Parameters
sender
e

Optionen:

Option-1: Ungebundene generische Typen und nameof (Fix-Value)

Ab C# 14 kann das Argument für nameof ein ungebundener generischer Typ sein. nameof(List<>) ergibt beispielsweise List. In früheren Versionen von C# können nur geschlossene generische Typen wie List<int<verwendet werden, um den List Namen zurückzugeben.

  • A: FIX-Werte (Class) im Code. _NameOf = nameof(System.Collections.Generic.KeyValuePair<,>)

    B: Sample mit generischem Code, SampleClassCSharp14Base._GetNameOf(nameof())

    C: void SampleClassCSharp14Base._GetNameOfMethod(nameof(KeyValuePair<,>))

    D: void SampleClassCSharp14Base.LocalFunction<KeyValuePair<int?, string>>(_KeyValuePairPinName) Einfache Klasse KeyValuePairClass zum Einsatz mit dieser Methode erstellt. Das Problem ist, zu erkennen wann value, key einfach NULL sind. Auch mit dem Einsatz Activator kann mit dem ArgumentNullException kein Fehler erzeugt werden. Das .Add eine NULL-Key in der Klasse KeyValuePairClass ist grundsätzlich nicht möglich, soweit also kein Problem.

Option-2: korrekte Lösung: nameof(list) Auflösung kommt aus Parameter welcher als nameof(xxx) übergeben wurde. Soweit also eine korrekte Lösung
Option-3: Lösung mit typeof().Name Übergabe mit generischem Type. Braucht aber einen kompleten Type z.b: List<int>
Option-4: Lösung mit typeof().Name Grundsätzlich analog Option-03, nur mehr tamtam rundherum. Braucht aber einen kompleten Type z.b: List<int>
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks:

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-14

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-14#unbound-generic-types-and-nameof https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010

◆ tsACSharpVersion_014_LambdaParameterMod_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_014_LambdaParameterMod_Click ( object sender,
EventArgs e )
private
Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Remarks:

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-14

◆ tsACSharpVersion_CSharp13_LINQ_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_LINQ_Click ( object sender,
EventArgs e )
private

C# Version: 13.0 / Net 9.0: Diverse Varianten mit LINQ.

Parameters
sender
e

Optionen:

Option-1: Most frequented word Zeigt die meistverwendeten Ausdrücke in einem String an
Option-2: AggregatedBy Summieren von Werten aus einem KeyValuePair
Option-3: OrderedDictionary Gezieltes sortieren von Werten im OrderedDictionary
Option-4: Contrains-Parameters Einschränken (Constraint) bei Verwendung von Parametern
public static T _TempGenericClass<T>(string requestUri, T item, bool throwException = false) where T : class
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsACSharpVersion_CSharp13_ParamsCollections_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ParamsCollections_Click ( object sender,
EventArgs e )
private

C# Version: 13.0 / Net 9.0: Verwenden Methode-Parameter als Collection, nicht einzeln.

Parameters
sender
e

Optionen:

Option-1: Parameters-Collection

Verwenden einer Parameter-List bei einer Methode

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13#params-collections

Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsACSharpVersion_CSharp13_PartialClassMembers_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_PartialClassMembers_Click ( object sender,
EventArgs e )
private
Parameters
sender
e

Optionen:

Option-1: PartialClassMembers: Partial-Class Members / Property

Sie können partial Eigenschaften und partial Indexer in C# 13 deklarieren. Partielle Eigenschaften und Indexer folgen im Allgemeinen denselben Regeln wie partial-Methoden: Sie erstellen eine deklarierende -Deklaration und eine implementierende -Deklaration. Die Signaturen der beiden Deklarationen müssen übereinstimmen. Eine Einschränkung besteht darin, dass Sie keine automatische Eigenschaftsdeklaration für die Implementierung einer partiellen Eigenschaft verwenden können. Eigenschaften, die keinen Textkörper deklarieren, werden als deklarierende Deklaration betrachtet.

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13#more-partial-members

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/partial-member

Option-2: MyPartialClassA: Partial-Class Methode (Declaration / Implementierung) Darstellung einer Methode in der Implementierungs-Class. Dieser Implementierungsteil kann auch deaktiviert werden, das Ganze kann immer noch kompiliert werden. Siehe Sample MyPartialClassB betreffend deaktivierung der Implementierung.
Option-3: RegExSourceGenerator: Partial-Class Regex-Anwendung

A: Prüfen einer String-Liste mit Begriffen => Return-Liste enthält alle korrekten Inhalte

B: Prüfen einer String-Liste mit Begriffen => Prüft mit Ja/Nein begriffe

Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

◆ tsACSharpVersion_CSharp13_ThreadingLock_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ThreadingLock_Click ( object sender,
EventArgs e )
private

C# Version: 13.0 / Net 9.0: Threading und neue lock-Varianten.

Beinhaltet verschiedene Methoden zu Lock-Funktionen. Es muss sichergestellt sein, dass kein Code parallel ausgeführt wird, der nicht so ausgeführt werden darf.

INC: 31.12.2025 [fho.frm.net.Microsoft_DotNetSamples.ClassMethode::ClassCSharp13] => .Net 9.0 C#-13.0 Threading-Lock

Link: https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13#new-lock-object

Parameters
sender
e

Remarks:

Link: https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13#new-lock-object

Optionen:

Option-1: ASYNC (Awaitable)

_GetAmountFromAccount_v1000() => mit lock(this), System=>Sequentiell, Dialog open Instance-Member mit Task-Number als Parameter.

In Methode await Task.Run() mit Lambda-Expression, _GetAmountFromAccount_v1000() ist somit als async (awaitable) einsetzbar. Im Lambda-Code ist eine lock()-Anweisung, zum Schutz einer parallelen Ausführung. Also nur sequentielle Ausführung.

Option-2: ASYNC (Awaitable)

_GetAmountFromAccount_v1100() => ohne lock(this) System=>CHAOS=>Dialog open Instance-Member mit Task-Number als Parameter.

In Methode await Task.Run() mit Lambda-Expression, _GetAmountFromAccount_v1000() ist somit als async (awaitable) einsetzbar. Im Lambda-Code ist keine eine lock()-Anweisung, damit also parallele Ausführung oder einfach CHAOS! Keine Kontrolle über die Reihenfolge bei der Ausführung!

Option-3: ASYNC (Awaitable)

_GetAmountFromAccount_v1100() => ohne lock(this) System=>ASYNC-AWAIT=>Sequentiell, Dialog blocked (Result) Instance-Member mit Task-Number als Parameter.

In Methode await Task.Run() mit Lambda-Expression, _GetAmountFromAccount_v1000() ist somit als async (awaitable) einsetzbar. Im Lambda-Code ist keine eine lock()-Anweisung, damit eine parallele Ausführung verhindert werden kann, wird die Methode mit AWAIT und .Result ausgeführt, damit bleibt der Dialog blockiert, und die Anwendung wird sequentiell ausgeführt.

Option-4: (Awaitable)

_GetAmountFromAccount_v1200() => lock(aus Instance) Instance-Member System=>Sequentiell, Dialog open und Task-View Form.

Kein ASYNC / ASYNC .Result oder etwas ähnliches! Einfach nur AWAITABLE und SQUENTIELLE Ausführung. Der Dialog bleibt offen!

Option-5:
Option-6:
Option-7:
Option-8: case-1:SYNC

_GetAmountFromAccount_v3000()::Case-1: lock(static-version) System=>Sequentiell ==> Parameter:Task-Number.

Option-9: case-2:SYNC

_GetAmountFromAccount_v3000()::Case-2: System.Threading.Lock.Scope System=>Sequentiell ==> Parameter:Task-Number.

Option-10: case-3:SYNC

_GetAmountFromAccount_v3000()::Case-3: keinen Schutz System=CHAOS ==> Parameter:Task-Number.

cbOption01: _GetAmountFromAccount_v1000()

cbOption02: _GetAmountFromAccount_v1100(): System-Chaos

cbOption03: _GetAmountFromAccount_v1100(): System-Sequentiell

cbOption04: _GetAmountFromAccount_v1200()

cbOption08: _GetAmountFromAccount_v3000(1)

cbOption09: _GetAmountFromAccount_v3000(2)

cbOption10: _GetAmountFromAccount_v3000(3)

◆ tsACSharpVersion_CSharp13_ThreadingLockASYNC_Click()

async void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ThreadingLockASYNC_Click ( object sender,
EventArgs e )
private

Sammlung von Sample-Code zu.

A ASYNC-Methoden mit: ref locals, unsafe code, iteration
B

Anwendung yield Statement

Parameters
sender
e

Optionen:

Option-1: Direkt ohne Task und Lambda-Expression Einfache Art und Weise die Methode _UseLocalParameterAsync() ASYNC auszuführen. Der Dialog bleibt offen, da die Basis-Mehode tsACSharpVersion_CSharp13_ThreadingLockASYNC_Click() ebenfalls als async deklariert ist.
Option-2: Task.Run() Task.Run() Methode mit Lamdba-Code. Task.Run() mit await und in Lambda-Expression ebenfalls mit async und await. Eigentlich auch schon doppelt!
Option-3: Ref.-Value als Array

Rückgabe eines IEnumerable-Sring aus einem String-Array

Link: https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/proposals/csharp-13.0/ref-unsafe-in-iterators-async

Option-4: Rückgabe eines IEnumerable-Int Value
Option-5: Anwendung yield Statement und async-code

Beispiel von Microsoft. RefLocalsUnsafeCodeIteration._GetValueFromYield_1000()

Link: https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/statements/yield

Option-6: _GetValueFromYield_1101()
  • Basierend auf dem Beispiel von Microsoft. RefLocalsUnsafeCodeIteration._GetValueFromYield_1100()

    bis zum 25.02.2026 konnte diese Methode mit yield verwendet werden, auch Task.Run() mit async und Result konnten ausgeführt werden.

    am 26.02.2026 wurde ein Update installiert 16.3.1 auf 16.3.2

    Probleme beim Compiler mit der aktuellen Version in dieser Methode und yield

    Am 04.03.2026 umgebaut und aufgeteilt auf [Task.Run() async und await]_GetValueFromYield_1101() und [Task.Run()]_GetValueFromYield_1102()

    _GetValueFromYield_1101() wartet (await) auf die Ausführung beim .Result => Dialog ist blockiert

    _GetValueFromYield_1102() kein warten, wird als Task ausgeführt => Dialog bleibt offen

Option-7: _GetValueFromYield_1102() Description siehe Option-06:
Option-8: IAsyncEnumerable Wozu sollte ich ein solches Design-Muster verwenden???
Option-9:
Option-10: OverloadResolutionPrioritySample

Durch dieses Attribute sollte die Proprity-Liste bei Methoden-Overload beeinflusst werden können.

https://learn.microsoft.com/de-de/dotnet/api/system.runtime.compilerservices.overloadresolutionpriorityattribute?view=net-10.0

https://learn.microsoft.com/de-de/dotnet/api/system.runtime.compilerservices.overloadresolutionpriorityattribute.-ctor?view=net-10.0#system-runtime-compilerservices-overloadresolutionpriorityattribute-ctor(system-int32)

Option-11:

◆ tsACSharpVersion_ENUMType_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ENUMType_Click ( object sender,
EventArgs e )
private

Menu: C# Versionen : C# Version-11 : ENUM.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
ENUM tsACSharpVersion11_ENUM_Click()

◆ tsACSharpVersion_ImplicitIndexerAccess_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ImplicitIndexerAccess_Click ( object sender,
EventArgs e )
private

C# Version: 13.0 / Net 9.0: Implicit Index Access im Array, class, struct und div. varianten zu generika.

Parameters
sender
e

Optionen:

Option-1: 02.02.2026 => macht Sinn Sortierung eines Array, und Ausgabe eine bestimmten Werte gemäss Soertierung
Option-2: 06.02.2026 => SampleClassRefStruct()

ReadOnlySpan<T> ist eine Referenzstruktur, die auf dem Stack alloziert wird und niemals in den verwalteten Heap verschoben werden kann. Referenzstrukturen unterliegen einer Reihe von Einschränkungen, um zu verhindern, dass sie in den verwalteten Heap verschoben werden.Dazu gehört, dass sie nicht geboxt, in Lambda-Ausdrücken erfasst, Variablen vom Typ Object oder dynamischen Variablen zugewiesen werden können und keine Schnittstellen implementieren dürfen.

Eine ReadOnlySpan<T>-Instanz wird häufig verwendet, um auf die Elemente eines Arrays oder einen Teil eines Arrays zu verweisen. Im Gegensatz zu einem Array kann eine ReadOnlySpan<T>-Instanz jedoch auf verwalteten Speicher, nativen Speicher oder auf dem Stack verwalteten Speicher verweisen.

Sie können z. B. einen generischen Typ wie den folgenden Code deklarieren: https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13#allows-ref-struct

Vor C# 13 konnten ref struct Typen nicht als Typargument für einen generischen Typ oder eine generische Methode deklariert werden. Jetzt können generische Typdeklarationen eine Antieinschränkung allows ref structhinzufügen. Diese Antieinschränkung deklariert, dass das typargument, das für diesen Typparameter bereitgestellt wird, ein ref struct Typ sein kann. Der Compiler erzwingt Ref-Sicherheitsregeln für alle Instanzen dieses Typparameters.

Auf diese Weise können Typen wie System.Span<T> und System.ReadOnlySpan<T> ggf. mit generischen Algorithmen verwendet werden. Weitere Informationen finden Sie in den Updates für where und im Artikel zum Programmierhandbuch über generische Einschränkungen .

Option-3: 06.02.2026 => SampleClassPropertyClass() Zugriff / Verwendung der Daten auf normalem Weg via reflections
Option-4: 06.02.2026 => SampleClassGeneric001 Standard Klasse und generische Methode
Option-5: 06.02.2026 => SampleClassGeneric002<T> Der generische Type wird direkt via Constructor übergeben.
Option-6: 06.02.2026 => ref struct nochmals Muss genauer analysiert werden!
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Hilfe

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/configure-language-version

https://learn.microsoft.com/de-de/dotnet/core/whats-new/dotnet-9/overview

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-13

◆ tsACSharpVersion_Interceptors_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_Interceptors_Click ( object sender,
EventArgs e )
private

VCS: 06.12.2024 => C#-12 => [ClassCSharp12::tsACSharpVersion_Interceptors_Click] Lauffähige Version: interceptors.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Sample Interceptor aus .Net 8.0 und C# 12.0 FUNKTIONIERT

Dieses Ganze Kapitel ist interessant, aber ein komplettes [bastel-wastel] mit Zeilen-Zählen Tool. Und nur für ganz spezielle Anwendungen (temp. Korrekturen) im Source-Code zu verwenden.

Interceptors sind ein experimentelles Feature, das im Vorschaumodus mit C# 12 verfügbar ist. Das Feature kann in einer zukünftigen Version Breaking Changes unterliegen oder entfernt werden. Daher wird es nicht für Produktions- oder freigegebene Anwendungen empfohlen.

Um Interceptors zu verwenden, muss das Benutzerprojekt die Eigenschaft <InterceptorsPreviewNamespaces> angeben. Dies ist eine Liste von Namespaces, die Abfangvorrichtungen enthalten dürfen.

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-12#interceptors

Achtung: muss zwingend im Project-Eigenschaft XML Bereich: <PropertyGroup> definiert werden!

<InterceptorsPreviewNamespaces>;fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.Interceptors</InterceptorsPreviewNamespaces>

◆ tsACSharpVersion_ParameterRefReadonly_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ParameterRefReadonly_Click ( object sender,
EventArgs e )
private

Menu: C# Versionen : C# Version-11 : Readonly VCS: 11.11.2024 => C#-11 => [ClassCSharp11::tsACSharpVersion11_Readonly_Click] Problem [readonly, ref, struct] etc..

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
Fehler im Sandcastle ==> Readonly SHFB: Error BE0065: TransformComponent: [P:fho.frm.net.Microsoft_DotNetSamples.ClassCSharpVersion.TestReadOnlySpan_Class._RefFieldName] An error occurred while attempting to transform the reflection data to a topic. The error message was: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-12

Struct

Struct

Struct

◆ tsACSharpVersion_PrimaryConstructor_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_PrimaryConstructor_Click ( object sender,
EventArgs e )
private

VCS: 12.11.2024 [No Display-Output] => C#-12 => [ClassCSharp12::tsACSharpVersion_PrimaryConstructor_Click] primary constructor, base, this ...

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

(Basis) Class zur Vererbung mit PRIMARY-CONSTRUCTOR

Class mit Constructor [base]

Class mit Constructor [this]

(Base-Class) CSharpVersion12ConstructorSampleClassBase

Class CSharpVersion12ConstructorSampleClass mit Vererbung aus: CSharpVersion12ConstructorSampleClassBase

Class CSharpVersion12ConstructorSampleClass this auf (call) _SampleClass_001

◆ tsACSharpVersion_TupelType_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_TupelType_Click ( object sender,
EventArgs e )
private

VCS: 15.11.2024 => C#-12 => [ClassCSharp12::tsACSharpVersion_TupelType_Click] Tupel-Typen, List<(string _CustomerName, string _Scanserver)>.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Array of named tuples (LINQ)

Umstellung auf .Net 8.0 n�tig

Tuple-Types

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-tuples

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/builtin-types/value-tuples https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.aggregate?view=net-8.0

Zählt Anzahl score >= 10: Achtung => 0-Basiert!!

Addieren Value aus score

            1

dataB.Aggregate(0, (_seed, _func) => _seed += (_func.score + _func.count));

  1. Startvalue

LINQ

Analyse für Projekt:D:\Service.Levantis.Exxas\sym.frm.net.Exxas_Client:Lansweeper-Auswertung

Kann als sinnvolle Soll/Haben Summieurng verwendet werden.

Suche nach dem längsten Begriff

Suchen nach Anzahl geraden Zahlen im Array (im Moment noch wahnsinnig wichtig!!)

Frage Gerade/Ungerade (eaven/odd)

foreach über Tupel-Type: eigentlicg ganz einfach

◆ tsACSharpVersion_ZeichenfolgenliteraleUtf8_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ZeichenfolgenliteraleUtf8_Click ( object sender,
EventArgs e )
private

VCS: 11.11.2024 => C#-11 => [ClassCSharp11::tsACSharpVersion11_ZeichenfolgenliteraleUtf8_Click] Aktuelle Position im Projekt. Auslesen Daten aus ReadonlySpan _FieldA INF: 04.03.2025 => Das ist aber ganz schön schräg!!!! =>pragma warning disable CS0108 in .editorconfig.

Menu: C# Versionen : C# Version-11 : Zeichenfolgeliterale Diese Methode versucht zu klären was es braucht für [ReadOnlySpan]: ref struct. Nur die ref struct kann diese struct auch implementieren!

22.10.2024 => Problem mit dieser Methode und SandCastle. [TestReadOnlySpan_Class] Ref.-STRUCT (Achtung: Hinweis OBSOLETE wird von Sandcastle eingefügt!! Fehler)

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-11

Zeichenfolgen tsACSharpVersion11_ZeichenfolgenliteraleUtf8_Click()

Instance Class C-Sharp 11.0

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-12#ref-readonly-parameters Neues aus C#-12 .Net 8.0: aus VersionEncoding to UTF-8 Post-Fix:

https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-12#ref-readonly-parameters Neues aus C#-12 .Net 8.0: Encoding to UTF-8 Post-Fix: Keine intelligente Aktion, nach .ToString(): die Daten im byte[] können nicht mehr gelesen werden

◆ tsACSharpVersionOperatorTernaryConditional_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionOperatorTernaryConditional_Click ( object sender,
EventArgs e )
private

C# ternary conditional operator: Ternärer-Operator ?: [ (Ausdruck true/false) ? true-value : false-value.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Der bedingte Operator ?:, der auch als ternärer bedingter Operator bekannt ist, wertet einen booleschen Ausdruck aus und gibt das Ergebnis für einen der zwei Ausdrücke zurück, abhängig davon, ob der boolesche Ausdruck true oder false ergibt.

◆ tsACSharpVersionOverrideMethode_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionOverrideMethode_Click ( object sender,
EventArgs e )
private

C# override methode.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

Dieses Kapitel lassen wir einfach wie es ist. Keine speziellen Code-Design mit func/lambda etc. Alles was dann kommt macht die Wartung einfach immer komplizierter! Für alles was alt ist, kann das ObsoleteAttribute verwendet werden!! Ansonsten bleiben alle Methoden wo, und wie sie sind!

◆ tsACSharpVersionTokenEqGt_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionTokenEqGt_Click ( object sender,
EventArgs e )
private

C# Token und Varianten der Darstellung CHK: 11.03.2024 => SampleLambdaAusdruckBody._GetProgramName()-Methode Lambda und Ausdruckskörper.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/language-specification/expressions#124-operators https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/language-specification/expressions#1219-anonymous-function-expressions https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/operators/lambda-operator#expression-body-definition https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/operators/lambda-operator https://learn.microsoft.com/de-de/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members

Sample-Version mit switch

Operator Lambdaausdruck [=>] mit switch

Operator Lambdaausdruck [=>] Standard

Operator Lambdaausdruck [=>] Standard

Operator Lambdaausdruck [=>] anonyme Funktion 1 Parameter no Return

◆ tsAMicrosoftKISample001_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAMicrosoftKISample001_Click ( object sender,
EventArgs e )
private
Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:

https://learn.microsoft.com/de-de/semantic-kernel/concepts/plugins/?pivots=programming-language-csharp https://learn.microsoft.com/de-de/semantic-kernel/get-started/quick-start-guide?pivots=programming-language-csharp

Microsoft KI Achtung: Dieses Sample wir in dieser Umgebung nicht realisiert. Das Problem liegt grundsätzlich an der Menge von externen Bibliotheken die installiert werde müssen!

In dieser Sample-Applikation muss alles ohne zusätzlich Abhängigkeiten auskommen, auch sollen keine NuGet-Bibliotheken geladen werden, welche dann immer wieder aktualisiert werden müssen.

◆ tsARaspberryNet60RaspberrySystem_Click()

void fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsARaspberryNet60RaspberrySystem_Click ( object sender,
EventArgs e )
private

CHK: 30.06.2025 => Implementierung Raspberry Processor Menu: Raspberry : Dot-Net 6.0 : Raspberry-System.

Parameters
sender
e

Optionen:

Option-1:
Option-2:
Option-3:
Option-4:
Option-5:
Option-6:
Option-7:
Option-8:
Option-9:
Option-10:
Option-11:
07.07.2025 Die Bezeichnung BCM2835 im cpuinfo ist einfach veraltet, und wird nicht mehr verwendet. Ich habe die beiden enum (Processor / Model) aus diesem Beispiel so angepasst, dass die RPi-Version 3 / 3B / 3B+ mit > Debian 12.0 noch funktionieren mit der Software aus H:\000_Projekte\000_RPi\001_Software\004_Pi3 (USB-Stick). Für die nachfolgenden Projekte für RPi-4 / -5 habe ich mich für die Microsoft-Library Verison entschieden. (H:\000_Projekte\000_RPi\001_Software\008_Raspberry_Microsoft) Details siehe im Dokument: H:\000_Projekte\000000_SoftwareProjektStatus\RaspberrySoftwareImplementierungen.odt
01.01.2024 Im Projekt Raspberry.System wird die Problematik mit dem Processor-Type und deren Hardware-Einstellungen (Adressen) behandelt. Problem an der ganzen Sache ist, dass der Name f�r die Enum-Zurodnung aus dem Rapsberry ($ cat /proc/cpuinfo) eigentlich nur immer Fix auf BCM2835 lautet. Die vor allem bei den 3 B/B+ -Modellen.
Debian Version 11.0 bullseye Bei der letzten Installation einer Linux-Version habe ich Version: bullseye (11.0) instaliert. Diese Version wurde autmatisch mit der SD-Card Schreibsoftware ausgeliefert. In dieser Version war der Feld-Name : Type mit BCM2835 vorhanden!
Debian Version 12.0 bookworm

Installiert mann eine neue bookworm Version (12.0) wird im CPU-Info diese Information nicht mehr ausgegeben. Damit kann diese Raspberry.System-Version nicht mehr funktionieren. Der Rpi gibt dann beim start einer Software aus Basis dieses Modules einfach eine Meldung aus => System ist kein Raspberry PI!! Und beendent seine Funktion.

Diese Informationen müssen in die cpuinfo.txt Datei (\sampledata\cpuinfo.txt)

Member Data Documentation

◆ _GlobalCancellationToken

CancellationToken fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._GlobalCancellationToken
private

Übergeben des zurückgegebenden Token über die CancellationTokenSource. Token-Eigenschaft an jede Aufgabe oder Thread, der zum Lauschen verwendet wird, um den Abbruch zu bemerken.

◆ _GlobalCancellationTokenSource

CancellationTokenSource fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._GlobalCancellationTokenSource = new CancellationTokenSource()
private

23.04.2024: weiss aktuelle nicht mehr was ich machen wollte im Detail

Parameters
files
_ThreadId
Returns

23.04.2024: weiss aktuelle nicht mehr was ich machen wollte im Detail

Parameters
callDuration
threadId
Returns

Instanziieren eines CancellationTokenSource-Objekt, das die Abbruchbenachrichtigung verwaltet und an die einzelnen Abbruchtoken sendet.

◆ _GlobalReturnValue

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._GlobalReturnValue = string.Empty
staticprivate

◆ _GlobalValueCount

int fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._GlobalValueCount = 0
staticprivate

◆ _HelpFileSavePath

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._HelpFileSavePath = string.Empty
private

◆ _OutputMessage

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._OutputMessage = string.Empty
private

◆ _OutputStatus

bool fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._OutputStatus = false
private

◆ _ReturnValue

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._ReturnValue = string.Empty
private

◆ _XmlProjectFileName

string fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples._XmlProjectFileName = string.Empty
private

◆ aaaaToolStripMenuItem

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.aaaaToolStripMenuItem
private

◆ btnViewXmlDescription

Button fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.btnViewXmlDescription
private

◆ cbOption01

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption01
private

◆ cbOption02

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption02
private

◆ cbOption03

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption03
private

◆ cbOption04

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption04
private

◆ cbOption05

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption05
private

◆ cbOption06

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption06
private

◆ cbOption07

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption07
private

◆ cbOption08

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption08
private

◆ cbOption09

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption09
private

◆ cbOption10

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption10
private

◆ cbOption11

CheckBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.cbOption11
private

◆ components

System.ComponentModel.IContainer fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.components = null
private

Required designer variable.

◆ gBoxL

GroupBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.gBoxL
private

◆ gBoxRDown

GroupBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.gBoxRDown
private

◆ gBoxRUp

GroupBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.gBoxRUp
private

◆ label1

Label fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.label1
private

◆ label2

Label fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.label2
private

◆ lbMessage

ListBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.lbMessage
private

◆ ofd

OpenFileDialog fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.ofd
private

◆ spc

SplitContainer fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.spc
private

◆ spcR

SplitContainer fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.spcR
private

◆ tbDirectoryTemp

TextBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tbDirectoryTemp
private

◆ tbMenuBasePathAndFile

TextBox fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tbMenuBasePathAndFile
private

◆ toolStripSeparator1

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator1
private

◆ toolStripSeparator2

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator2
private

◆ toolStripSeparator3

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator3
private

◆ toolStripSeparator4

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator4
private

◆ toolStripSeparator5

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator5
private

◆ toolStripSeparator6

ToolStripSeparator fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.toolStripSeparator6
private

◆ tsA

ToolStrip fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA
private

◆ tsA_Close

ToolStripButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_Close
private

◆ tsA_Divers_Sample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_Divers_Sample001
private

◆ tsA_Standard_Sample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_Standard_Sample001
private

◆ tsA_TaskFromResult_Sample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample001
private

◆ tsA_TaskFromResult_Sample002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample002
private

◆ tsA_TaskFromResult_Sample003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskFromResult_Sample003
private

◆ tsA_TaskRun_Sample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample001
private

◆ tsA_TaskRun_Sample002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample002
private

◆ tsA_TaskRun_Sample003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample003
private

◆ tsA_TaskRun_Sample004

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample004
private

◆ tsA_TaskRun_Sample005

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample005
private

◆ tsA_TaskRun_Sample006

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample006
private

◆ tsA_TaskRun_Sample007

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample007
private

◆ tsA_TaskRun_Sample007Cancel

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsA_TaskRun_Sample007Cancel
private

◆ tsAAnyClassSamples

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAAnyClassSamples
private

◆ tsAClassDelegate

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDelegate
private

◆ tsAClassDelegateDelegateAction

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDelegateDelegateAction
private

◆ tsAClassDelegateDelegateFunc

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDelegateDelegateFunc
private

◆ tsAClassDependencyInjection

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDependencyInjection
private

◆ tsAClassDependencyInjection001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDependencyInjection001
private

◆ tsAClassDesignPattern

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern
private

◆ tsAClassDesignPattern001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern001
private

◆ tsAClassDesignPattern002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern002
private

◆ tsAClassDesignPattern003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern003
private

◆ tsAClassDesignPattern004

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassDesignPattern004
private

◆ tsAClassGenerica

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassGenerica
private

◆ tsAClassGenericaCheckGenericType

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassGenericaCheckGenericType
private

◆ tsAClassInterface

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassInterface
private

◆ tsAClassInterface001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassInterface001
private

◆ tsAClassSampleDataDataOperation001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDataDataOperation001
private

◆ tsAClassSampleDataSet

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDataSet
private

◆ tsAClassSampleDataSetInsertRecordToDataSet

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDataSetInsertRecordToDataSet
private

◆ tsAClassSampleDivers

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDivers
private

◆ tsAClassSampleDiversAwaitable001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleDiversAwaitable001
private

◆ tsAClassSampleEnum

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleEnum
private

◆ tsAClassSampleEnumConvert

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleEnumConvert
private

◆ tsAClassSampleEnumDictionaryFunctions

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleEnumDictionaryFunctions
private

◆ tsAClassSampleException

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleException
private

◆ tsAClassSampleExceptionUserException001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleExceptionUserException001
private

◆ tsAClassSampleExtension

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleExtension
private

◆ tsAClassSampleExtensionSample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleExtensionSample001
private

◆ tsAClassSampleLambda001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001
private

◆ tsAClassSampleLambda001Lambda001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda001
private

◆ tsAClassSampleLambda001Lambda002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda002
private

◆ tsAClassSampleLambda001Lambda003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda003
private

◆ tsAClassSampleLambda001Lambda004

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambda001Lambda004
private

◆ tsAClassSampleLambdaExpression001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleLambdaExpression001
private

◆ tsAClassSampleList

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleList
private

◆ tsAClassSampleListWithNTupel

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleListWithNTupel
private

◆ tsAClassSampleObjectManager

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObjectManager
private

◆ tsAClassSampleObjectManagerObjectManager001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObjectManagerObjectManager001
private

◆ tsAClassSampleObsoleteAttribute

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObsoleteAttribute
private

◆ tsAClassSampleObsoleteAttributeObsoleteAttribute

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleObsoleteAttributeObsoleteAttribute
private

◆ tsAClassSampleParallel

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallel
private

◆ tsAClassSampleParallelForEach001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach001
private

◆ tsAClassSampleParallelForEach002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach002
private

◆ tsAClassSampleParallelForEach003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleParallelForEach003
private

◆ tsAClassSampleProperty

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleProperty
private

◆ tsAClassSamplePropertyCreateClass001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSamplePropertyCreateClass001
private

◆ tsAClassSampleReadControl

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleReadControl
private

◆ tsAClassSampleReadControlgBoxL

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleReadControlgBoxL
private

◆ tsAClassSampleSerializable

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializable
private

◆ tsAClassSampleSerializableFW481DataContractSerializer

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableFW481DataContractSerializer
private

◆ tsAClassSampleSerializableJSONHelpInfo

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJSONHelpInfo
private

◆ tsAClassSampleSerializableJsonIgnoreAttribute

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJsonIgnoreAttribute
private

◆ tsAClassSampleSerializableJSONOptionNet90

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableJSONOptionNet90
private

◆ tsAClassSampleSerializableSerializationInfo

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSerializableSerializationInfo
private

◆ tsAClassSampleSynchAsync

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsync
private

◆ tsAClassSampleSynchAsyncCall001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall001
private

◆ tsAClassSampleSynchAsyncCall002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall002
private

◆ tsAClassSampleSynchAsyncCall003Async

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall003Async
private

◆ tsAClassSampleSynchAsyncCall003Synch

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall003Synch
private

◆ tsAClassSampleSynchAsyncCall004AsyncTaskMethode

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall004AsyncTaskMethode
private

◆ tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall005SynchMethodeAsyncRequest
private

◆ tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleSynchAsyncCall006SynchAsyncStreamWriter
private

◆ tsAClassSampleTask001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001
private

◆ tsAClassSampleTask001Async001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async001
private

◆ tsAClassSampleTask001Async002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async002
private

◆ tsAClassSampleTask001Async003

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async003
private

◆ tsAClassSampleTask001Async004

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async004
private

◆ tsAClassSampleTask001Async005

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTask001Async005
private

◆ tsAClassSampleTaskView

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskView
private

◆ tsAClassSampleTaskViewPERSON

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewPERSON
private

◆ tsAClassSampleTaskViewSTRING

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewSTRING
private

◆ tsAClassSampleTaskViewVOID

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleTaskViewVOID
private

◆ tsAClassSampleThreading

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleThreading
private

◆ tsAClassSampleThreadingStartThread001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleThreadingStartThread001
private

◆ tsAClassSampleThreadingStartThread002

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleThreadingStartThread002
private

◆ tsAClassSampleXMLOperation

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleXMLOperation
private

◆ tsAClassSampleXMLOperationDynamicRead001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSampleXMLOperationDynamicRead001
private

◆ tsAClassSingleton

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSingleton
private

◆ tsAClassSingleton001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAClassSingleton001
private

◆ tsACSharpVersion

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion
private

◆ tsACSharpVersion_014_Default

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_014_Default
private

◆ tsACSharpVersion_014_LambdaParameterMod

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_014_LambdaParameterMod
private

◆ tsACSharpVersion_CSharp13_LINQ

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_LINQ
private

◆ tsACSharpVersion_CSharp13_ParamsCollections

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ParamsCollections
private

◆ tsACSharpVersion_CSharp13_PartialClassMembers

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_PartialClassMembers
private

◆ tsACSharpVersion_CSharp13_ThreadingLock

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ThreadingLock
private

◆ tsACSharpVersion_CSharp13_ThreadingLockASYNC

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_CSharp13_ThreadingLockASYNC
private

◆ tsACSharpVersion_ENUMType

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ENUMType
private

◆ tsACSharpVersion_ImplicitIndexerAccess

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ImplicitIndexerAccess
private

◆ tsACSharpVersion_Interceptors

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_Interceptors
private

◆ tsACSharpVersion_ParameterRefReadonly

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ParameterRefReadonly
private

◆ tsACSharpVersion_PrimaryConstructor

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_PrimaryConstructor
private

◆ tsACSharpVersion_TupelType

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_TupelType
private

◆ tsACSharpVersion_ZeichenfolgenliteraleUtf8

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersion_ZeichenfolgenliteraleUtf8
private

◆ tsACSharpVersionOperatorTernaryConditional

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionOperatorTernaryConditional
private

◆ tsACSharpVersionOverrideMethode

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionOverrideMethode
private

◆ tsACSharpVersionTokenEqGt

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsACSharpVersionTokenEqGt
private

◆ tsAMicrosoftKI

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAMicrosoftKI
private

◆ tsAMicrosoftKISample001

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAMicrosoftKISample001
private

◆ tsARaspberry

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsARaspberry
private

◆ tsARaspberryNet60

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsARaspberryNet60
private

◆ tsARaspberryNet60RaspberrySystem

ToolStripMenuItem fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsARaspberryNet60RaspberrySystem
private

◆ tsAStandardSYNCH

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsAStandardSYNCH
private

◆ tsATaskFromResultSamples

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsATaskFromResultSamples
private

◆ tsATaskRunSamples

ToolStripDropDownButton fho.frm.net.Microsoft_DotNetSamples.frmDotNetSamples.tsATaskRunSamples
private

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