0
所以標題說明了這一切 - 但是我嘗試的方法似乎不起作用,我不知道爲什麼。計算從客戶端到服務器請求數據所花費的時間 - Unity
public static IEnumerator RetrieveCharacterData(string userid, Action<string> charSelectResponse)
{
WWWForm data = new WWWForm();
data.AddField("userid", userid);
// Send request to server
WWW characterSelectRequest = new WWW(Helper.Constants.kCharacterSelectUrl, data);
float elapsedTime = 0.0f;
while (!characterSelectRequest.isDone)
{
elapsedTime += Time.deltaTime;
Debug.Log(elapsedTime); // This prints in real time the correct data
if (elapsedTime >= Helper.Constants.ConnectionTimeoutInterval)
{
Debug.Log("Server error: Connection has timed out.");
yield return null;
}
}
// This doesn't work - prints out garbage values
Debug.Log(elapsedTime);
if (!characterSelectRequest.isDone || !string.IsNullOrEmpty(characterSelectRequest.error))
{
charSelectResponse.Invoke(null);
yield break;
}
charSelectResponse.Invoke(characterSelectRequest.text);
}
- 所以有些編輯後,這已經讓我最接近我想要的東西 - 但是當我嘗試並取得實際elapsedTime,它打印出垃圾值。
這不是問題 – Programmer
是的,你是對的。這實際上是問題+ 1雖然,您需要解決此問題以在達到超時(ConnectionTimeoutInterval)時退出該函數。你目前的答案不會那樣做。我認爲這就是爲什麼有if語句。 – Programmer
我的問題不是計算,這就是爲什麼elasedTime出現垃圾值... –