चीज़ नहीं है से
public T Execute<T>(RestRequest request) where T : new()
{
var client = new RestClient();
client.BaseUrl = BaseUrl;
client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey);
request.AddParameter("AccountSid", _accountSid, ParameterType.UrlSegment); // used on every request
var response = client.ExecuteAsync(request, response => {
return response.data);
});
}
ऊपर कोड है ... आप एक अतुल्यकालिक रूप से वितरित मूल्य वापस नहीं कर सकते हैं:
मैं इस लेकिन does not 'काम करने की कोशिश की , क्योंकि आपकी कॉलिंग विधि पहले से ही वापस आ जाएगी। जब तक आपके पास नतीजा न हो तो कॉलर को अवरुद्ध करना ExecuteAsync का उपयोग करने के बिंदु को हरा देता है। इस मामले में, मैं वापसी चाहते हैं एक Task<string>
(यह मानते हुए response.Content एक स्ट्रिंग है):
Task<string> GetResponseContentAsync(...)
{
var tcs=new TaskCompletionSource<string>();
client.ExecuteAsync(request, response => {
tcs.SetResult(response.Content);
});
return tcs.Task;
}
अब, जब काम पूरा करता है, तो आप एक मूल्य की है। जैसे ही हम सी # 5 एसिंक/प्रतीक्षा करते हैं, आपको Task<T>
के संदर्भ में एसिंक्रोनि को बताने के लिए उपयोग करना चाहिए क्योंकि यह सुंदर कोर है।
http://msdn.microsoft.com/en-us/library/dd537609.aspx
http://msdn.microsoft.com/en-us/library/hh191443.aspx
आप कृपया विस्तार से बताएं सकता है "आप एक एक वापस नहीं लौट सकते समकालिक रूप से वितरित मूल्य " –