brak możliwości użycia "await" na zwracanym tasku.

0

Mam zdefiniowany obiekt:

    public class Controller
    {
        public Func<string, string, Sink, bool, Task> Display;
    }

Użycie:

    Controller controller;
    await controller.Display("", "", null, true);//nie mogę tego użyć w ten sposób
    Task displayTask = controller.Display({...}); //przechodzi

Jakieś pomysły?

2

Si senor

Metoda gdzie używasz await musi być oznaczona jako async

Takie coś:

	private async void DoSomething()
        {            
            await controler.Display("","","",false);
        }
0
Manuel.Artificer napisał(a):

Si senor

Metoda gdzie używasz await musi być oznaczona jako async

Takie coś:

	private async void DoSomething()
        {            
            await controler.Display("","","",false);
        }

Wiem, funkcja przypisana do Controller.Display

        public async Task Meh(string ID, Sink Sink = null, bool HideEmpty = false)
        {
                 CB.Dispatcher.Invoke((() =>
                 {
                      //do stuff
                }
        }

Wątpię aby miało to znaczenie, ale obiekt typu Controller jest wstrzykiwany do obiektu zaimportowanego przy użyciu MEF.

0

Możesz też pisać w ten sposób

Func<string, Task> WebConnection = async (string webConncetionString) => { await ConncetionResponseAsync(webConncetionString) };

Jeśli o to ci chodzi...
Taska możesz wykonać bez async / await ale doprowadzi to do wyścigu wątków. Np. zanim uaktualnisz DB jej zawartość zostanie wyświetlona.

1 użytkowników online, w tym zalogowanych: 0, gości: 1