我在C#中使用WWW库用于Unity。当我从主线程调用函数发送时,它没问题。
PostWorker pw = new PostWorker();
API.instance.StartCoroutine(pw.Send(url, postParams));
但是当我尝试从PostWorker中创建它时
API.instance.StartCoroutine(Send(url, postParams));
这种错误不起作用:
只能从主线程调用StartCoroutine_Auto。
如果我在没有Coroutine
的情况下调用此功能,则该功能无法正常工作,请勿输入Send
。
private IEnumerator Send(string path, Dictionary<string, string> postData)
{
WWWForm form = new WWWForm();
if (postData != null && postData.Any())
{
foreach (var item in postData)
{
form.AddField(item.Key, item.Value);
}
}
WWW www = new WWW(path, form);
yield return www;
if (string.IsNullOrEmpty(www.error))
{
Debug.Log(www.text);
}
else
{
Debug.Log(www.error);
}
}
那么,我如何从非主线程执行http请求?