私はXamarinでレルムを学習しています。レルム-Xamarinでの非同期操作
Thread
を使用していくつかのサンプルデータを挿入しようとしています。私は、同じ関数を複数のスレッドで呼び出すまで、何の問題も抱えていません。領域文書にはexecuteTransactionAsync
の中に挿入操作を実行すると書かれていますが、Realm-Xamarinのようなメソッドはありません。
ここにコードがあります。
Thread thread1 = new Thread(() => TestThread.CountTo10("Thread 1"));
thread1.Start();
Thread thread2 = new Thread(() => TestThread.CountTo10("Thread 2"));
thread2.Start();
Threadクラス:
public class TestThread
{
public static Realm realm;
public static void CountTo10(string _threadName)
{
realm = Realm.GetInstance();
for (int i = 0; i < 5; i++)
{
realm.Write(() =>
{
RandomNumber random = new RandomNumber();
System.Console.WriteLine("Iteration: " + i.ToString() + " Random No: " + random.number.ToString() + " from " + _threadName);
realm.Manage(random);
});
Thread.Sleep(500);
}
}
}
レルムオブジェクト:
public class RandomNumber : RealmObject
{
public int number { get; set; }
public RandomNumber()
{
number = (new Random()).Next();
}
}
xamarinドキュメント:https://realm.io/docs/xamarin/latest/ – EpicPandaForce