2014-04-24 32 views
15

Windows Phone 8'de public async Task<bool> authentication() yöntemim var. Işlevin dönüş türü bool olduğunu, ancak bir if durum hatası döndürülen değerini kullanmaya çalıştığınızda hata Task<bool>bool için dönüştüremiyor.Koşullar için Görev <bool> kullanılabilir mi?

public async Task<bool> authentication() 
{ 
    var pairs = new List<KeyValuePair<string, string>> 
    { 
     new KeyValuePair<string, string> ("user", _username), 
     new KeyValuePair<string, string> ("password", _password) 
    }; 

    var serverData = serverConnection.connect("login.php", pairs); 

    RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData); 

    if (json.logined != "false") 
    { 
     _firsname = json.data.firsname; 
     _lastname = json.data.lastname; 
     _id = json.data.id; 
     _phone = json.data.phone; 
     _ProfilePic = json.data.profilePic; 
     _thumbnail = json.data.thumbnail; 
     _email = json.data.email; 
     return true; 
    } 
    else 
     return false; 
} 
+0

Hayır "Görev " bir "bool" olmadığı için kullanamazsınız. Aslında bir sorunla karşılaştığınız kodu yüklemelisiniz, ancak muhtemelen 'bool b = kimlik doğrulamasını bekle(); if (b) {...} ' – Lee

+0

" Eşzamansız "kimlik doğrulama yönteminiz hiçbir şey beklemez, bu nedenle asenkron olarak – Servy

cevap

30

senin işlevin dönüş tipi Task<bool> değil bool kendisidir. Sen async/await dil özellik hakkında daha fazla anlamak için "Bir zaman uyumsuz Yönteminde Olur Ya bu" MSDN article ait bölümünü okuyabilir

bool result = await authentication(); 

: sonuç almak için, await anahtar kelimeyi kullanmalıdır. Eğer bir Task bekleyen favori alternatif bir yöntem kullanabilirsiniz

bool result = await authentication(); 

Veya:

+0

noldur. – MohamedAbbas

+0

numaralı yazı için teşekkür ederiz Günüm adamımdan yapılmış: D –

1

Sen görevi await gerekir.

+1

Async/beklemeyi kullanma "alternatif yöntemler" ('Task.Wait()' veya 'Task.Result') genellikle [kilitlenme durumlarına] yol açabilir (http://stackoverflow.com/questions/13140523/await-vs-task-wait-deadlock) . –

İlgili konular