Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不干扰游戏逻辑及其执行的情况下读取文本文件_C#_Asynchronous_Unity3d - Fatal编程技术网

C# 在不干扰游戏逻辑及其执行的情况下读取文本文件

C# 在不干扰游戏逻辑及其执行的情况下读取文本文件,c#,asynchronous,unity3d,C#,Asynchronous,Unity3d,我正在尝试读取服务器上的文本文件。它是一个文本文件。我能看懂,但问题是如果网速太慢,它会在游戏中停留一段时间。 可能我需要以异步方式运行此任务,但我无法这样做。我在网上找不到任何合理的帮助 请让我知道如何在后台或在Unity中异步运行任务。 这是我想在后台执行的函数 private void readFile() { Debug.Log("Trying to Read"); WebClient client = new WebClient(); Stream stream

我正在尝试读取服务器上的文本文件。它是一个文本文件。我能看懂,但问题是如果网速太慢,它会在游戏中停留一段时间。 可能我需要以异步方式运行此任务,但我无法这样做。我在网上找不到任何合理的帮助

请让我知道如何在后台或在Unity中异步运行任务。 这是我想在后台执行的函数

private void readFile()
{
    Debug.Log("Trying to Read");
    WebClient client = new WebClient();
    Stream stream = client.OpenRead("my text file url.txt");
    reader = new StreamReader(stream);
    result = reader.ReadToEnd();
    Debug.Log(result);
}
期待快速的帮助。 谢谢

这里有一个选项:

var task = new Task(readFile);
task.Start();

您可以使用WWW或WWWForm类来完成此操作。。。 您只需要给出文件下载路径,就可以从实例化的WWW对象的.text属性中提取下载的内容

public class ExampleClass : MonoBehaviour {
public string url = "File download URL here";
IEnumerator Start() {
    WWW www = new WWW(url);
    yield return www;
    //retreive the file content using www.text
    //write your code here
}

如果您需要更多信息,请参阅或使用www下载xml并显示当前数据

我正在寻找C#中的代码,而任务在.NET 3.5中不可用Unity不支持.NET>3.5此代码的问题是,如果服务器上没有该文件,它将读取未找到的页面,并且以这种方式始终使用上述方法读一些我不需要的东西。请建议在上述情况下出现错误或例外的情况。另外,如果这不是在主线程上运行,而是异步运行,请告诉我。嗯,我不确定你的错误页面是什么样子。但是,有一个名为“error”的属性可能会帮助您解决该问题。话虽如此,我相信如果它是同一个“未找到页面”,你可以相应地编码,这样你就可以检测到这个特定的错误…下面是它的样子WWW阅读所有的按钮和其他东西,它没有给出一个错误。不幸的是,文本下载链接是什么样子的?这是正确的链接