Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

WPF: Umschreiben einer Methode, Funktion in einen Task

Ich möchte in eine C#, WPF Funktion eine wait() funktion einbauen, damit der Aufruf eine Sekunde wartet.

Hierzu empfiehlt es sich die Funktion/Methode in einen asynchronen Task umzubauen

Beispiel vorher als Funktion


public void fp_Get_Capture_From_Clipboard()
{..}


Aufruf aus anderen Codestelle:

wndMain.fp_Get_Capture_From_Clipboard();

Umbau nachher als Task. Änderungen in Gelb


public async Task<bool> fp_Get_Capture_From_Clipboard()

{..

Await Task.Delay(1000);

..

}


Aufruf aus anderen Codestelle:

bool Task_ok = await wndMain.fp_Get_Capture_From_Clipboard();

Zusatz: sollte sich der aufrufende Code in einem Dispatcher{..}befinden

Dann muß auch dieser umgebaut werden

Die geänderten Stellen sind gelb markiert:


await this.Dispatcher.Invoke(async () =>
{
//Console.WriteLine("ScreenShot->MainWindow->fp_Capture");
//--< MainWindow steuern >--
MainWindow wndMain = Application.Current.MainWindow as MainWindow;
if (wndMain != null)
{

bool Task_ok = await wndMain.fp_Get_Capture_From_Clipboard();

//< Ansicht maximieren >
wndMain.Show();
wndMain.WindowState = WindowState.Maximized;
//wndMain.Topmost=true;
//</ Ansicht maximieren >

////< erstelle ScreenShot in Fenster >
try
{
wndMain.Focus();
wndMain.fp_Set_CropFrame_Max();//eckiger Crop-Rahmen ueber Schirm legen
}
catch (Exception)
{
MessageBox.Show("Fehler bei Keyboard-Listener get_snapshot", "KListener_KeyDown()");

throw;
}

////</ erstelle ScreenShot in Fenster >
}
//--< MainWindow steuern >--

});


public void fp_Get_Capture_From_Clipboard()
{
//-------------< fp_Get_Capture_From_Clipboard() >-------------
//Capture aus ClipBoard holen
try
{
//< Image aus ClipBoard holen >
if (Clipboard.ContainsImage() == true)
{ ctlImage.Source = Clipboard.GetImage(); }
//</ Image aus ClipBoard holen >
}
catch (Exception)
{
MessageBox.Show("Fehler beim Holen des Snapshots aus dem Zwischenspeicher", "fp_Get_Capture_From_Clipboard()");
throw;
}

//-------------</ fp_Get_Capture_From_Clipboard() >-------------

}

Nach Umbau zum Task, mit Einbau einer await

Gelbe Stellen wurde ergänzt


public async Task<bool> fp_Get_Capture_From_Clipboard()
{
//-------------< fp_Get_Capture_From_Clipboard() >-------------
//Capture aus ClipBoard holen
try
{
await Task.Delay(1000);

//< Image aus ClipBoard holen >
if (Clipboard.ContainsImage() == true)
{ ctlImage.Source = Clipboard.GetImage(); }
//</ Image aus ClipBoard holen >
}
catch (Exception)
{
MessageBox.Show("Fehler beim Holen des Snapshots aus dem Zwischenspeicher", "fp_Get_Capture_From_Clipboard()");
throw;
}
return true;
//-------------</ fp_Get_Capture_From_Clipboard() >-------------

}




betrifft: Umwandeln, umschreiben, task, Methode, Funktion

Mobile
»
C#: Tag nach Wochentag oder Wochenende prüfen
»
C#: Anzahl Tage in einem Monat berechnen
»
C#: Montag eines aktuellen Wochentages berechnen
»
C#: Suche Eintrag in Liste
»
C#: Wert in einer Dictionary finden und Vergleichen
»
C#: Ordner- Verzeichnis Name aus Pfad ermitteln
»
C#: Entfernen von Escapesequenzen
»
C#: Text ohne Sonderzeichen
»
C#, UWP: IReadOnlyList von Kontakten erstellen
»
C# Code: Suche Tag und Einfügen String in eime HTML Text

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de