# Async Timeout => "Funktion" mit an Methode übergeben



## baeri (8. Juli 2017)

Hallo,

wie kann ich einer Methode einen >Befehl< oder eine >Funktion< mit übergeben?

im Konkreten Fall will ich einen asyncronen Timeout auslösen und dann "irgendetwas" machen... Dieses Irgendetwas möchte ich aber nicht im "AsyncTimeout" definieren sondern mit Übergeben
=> hier Hardcodiert: MessageBox.Show("async Timeout");

```
public static Task WaitTheTime(int time)
        {
            return Task.Run(() =>
            {
                Thread.Sleep(time);
            });
        }

        public async void AsyncTimout(int time)
        {
            await WaitTheTime(time);
            MessageBox.Show("async Timeout");
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            AsyncTimout(5000);
        }
```

gibt es die Möglichkeit meinen "Befehl" mit zu übergeben?
AsyncTimout(5000, MessageBox.Show("async Timeout"));

=> das kommt daher, weil ich natürlich nicht immer eine MessageBox anzeigen will, sondern mal ne Datei löschen oder sonst irgendwas tun...

Vielen Dank


----------



## Turri (11. Juli 2017)

Hallo,

das geht mit delegates.
Schau mal hier:
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/delegates/using-delegates


----------

