1

コードの動作に関する混乱を解消するために、「オブジェクト」クラス (float と数値のクラス) を取り、(バイナリ形式を使用して) ファイルに書き込み、IPFS.Net 実装を使用してファイルを書き込みます。ネットワーク。ファイルの作成は問題ありませんが、ファイルを保存すると Unity でコードが無期限にハングします。コードは以下のとおりです。

public static class IPFS_IO
{
    public static void AddObject(Object obs)
    {
        string path = Application.persistentDataPath + "/data.bytes";
        if (File.Exists(path))
        {
            File.Delete(path);
        }

        FileStream stream = File.Create(path);
        BinaryFormatter formatter = new BinaryFormatter();
        formatter.Serialize(stream, obs);
        stream.Close();

        Task<Ipfs.IFileSystemNode> taskA = AddObjectSaveHash(path);
        taskA.Wait();

        //string hashpath = Application.persistentDataPath + "/hash.txt";

        //StreamWriter writer = new StreamWriter(hashpath);
        //writer.Write(hash);
        //writer.Close();
    }

    async static Task<Ipfs.IFileSystemNode> AddObjectSaveHash(string path)
    {
        Batteries.Init();

        using (var ie = new IpfsEngine("".ToCharArray()))
        {
            return await ie.FileSystem.AddFileAsync(path)
                           .ConfigureAwait(false);
        }
    }

これは一般的なデッドロックですか、それともネットワークに供給されるデータが多すぎるだけですか? 注意してください:

a) これは、Unity ゲーム エンジンで使用される C# 実装です。

b) Richard Schneiders の実装を使用しています (github: https://github.com/richardschneider/net-ipfs-engine )

皆さんが見つけることができる助けや問題をありがとう。

4

0 に答える 0